我不明白,爲什麼當我設置一個函數的對象實例,每當它從異步訪問,如setTimeout或承諾,它是未定義的。有人可以解釋嗎?有沒有解決方法?從異步函數訪問未定義的函數
感謝
function Animal() {
this.check = function() {
writeln(typeof this.test);
}
setTimeout(this.check, 1000); // returns undefined
}
var animal = new Animal();
animal.test = function() {
}
animal.check(); // returns function
你的問題可以簡化爲:'function A(){this.x = 42; this.foo = function(){console.log(this.x); }; } var obj = new A(); var f = obj.foo; f();' – melpomene