【发布时间】:2011-07-13 03:15:58
【问题描述】:
这里有两个代码示例。第一个不起作用,第二个起作用,尽管我完全不知道为什么。有人可以解释一下吗?
[我正在编写一个简单的游戏,使用一点 jQuery 在 webkit 浏览器中玩(稍后与 Titanium 一起打包)。]
在第一个示例中,Firebug 告诉我“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 oop this