以下是兩個代碼示例。第一個不起作用,第二個起作用,儘管我完全不知道爲什麼。有人可以解釋這個嗎?爲什麼在調用對象內部的函數時「this.myFunction」不起作用?
[我正在寫一個使用jQuery的一點的一個簡單的遊戲在WebKit瀏覽器(後來與鈦包裝)進行播放。]
在第一個例子,螢火告訴我,「this.checkCloud」不是一個功能。
function Cloud(){
this.checkCloud = function(){
alert('test');
}
$("#"+this.cloudName).click(function(){
this.checkCloud();
});
}
...但後來這個工程:
function Cloud(){
this.checkCloud = function(){
alert('test');
}
var _this = this;
$("#"+this.cloudName).click(function(){
_this.checkCloud();
});
}
這一個完美的作品。
爲什麼第一個不起作用?是否因爲「this.checkCloud」在匿名函數中?
所以在JavaScript中,「var」就像是在一個函數中創建一個私有的東西。這就說得通了。 – dbonneville