時調用如果在JavaScript中如何做getName()
回報john
爲什麼沒有這指的窗口的setTimeout
function Person() {
this.name = "john";
this.getName = function() {
return this.name;
};
}
var me = new Person();
setTimeout(function(){alert(me.getName())}, 3000);
我雖然this
將參照窗口中的點的功能實例沒有約束力致電setTimeout
。
見的jsfiddle:http://jsfiddle.net/qZeXG/
這是否是一個錯誤的假設,它似乎需要匿名函數來關閉它的事實意味着重要的是函數與上下文的綁定,即閉包,就像您執行'setTimeout(me。getName(),3000);'有錯誤。 – zode64