John Resig의 Simple JavaScript Inheritance를 사용하고 있으며 'this'가 의미하는 것을 잃어 버리는 문제가 발생했습니다. 이 코드를 사용 : 나는 기대와 경고가 처음 sub runner success
로Javascript 상속과 'this'의 컨텍스트 상실
var Runner = Class.extend({
init: function() {
this.update();
if(!this.interval) {
this.interval = setInterval(this.update, this.period * 1000);
}
},
stop: function() {
clearInterval(this.interval);
},
update: function() {
this.success()
},
success: function(){
}
});
var SubRunner = Runner.extend({
update: function() {
this._super();
},
success: function(){
alert('sub runner success');
}
});
이 p = new SubRunner()
작업을 실행합니다. 처음 실행 한 후 잘못된 'this'(창)에서 success 함수를 실행하려고 시도합니다.
Prototype은 함수에 컨텍스트를 전달할 수 있도록 바인딩 함수를 제공하지만 여기에 비슷한 작업을 수행하지 못했습니다. 누구든지 이것을 알아내는 출발점이 있습니까?
감사합니다.
setTimeout을 간과 한 것처럼 보이며 성공 함수에 너무 집중적으로 집중했습니다. 감사 또는 모두 도움! –