就像这个例子一样:
var teste = {name:'marcos'};
$(teste).each(function(){
var name = this.name; // i don't want to do that.
// i want to have access to 'this' inside this function (sayName)
var sayName = function(){
alert(name); // there is something like "super" in java? or similar way to do?
}
sayName();
});
我该怎么做?
答案 0 :(得分:2)
this
永远不会隐含在JavaScript中(就像在Java中一样)。这意味着如果您不调用函数作为对象的方法,this
将不会绑定到合理的东西(它将绑定到浏览器中的window
对象)。
如果你想在函数中有一个this
,那么该函数应该用作一个方法,即:
var teste = {name:'marcos'};
$(teste).each(function(){
this.sayName = function(){
alert(this.name);
}
this.sayName();
});
然后sayName是一个方法,并在this
答案 1 :(得分:0)
我在互联网上看到了很多例子(基于jQuery的包括):
var that = this;
var sayName = function() {
alert(that.name);
}
答案 2 :(得分:-1)
这是另一种方式:
var teste = {name:'marcos'};
$(teste).each(function(){
var that = this;
var sayName = function(){
alert(that.name);
}
sayName();
});
那是你的超级:-) 说真的,没有“超级”,因为它不是扩展名。