假设我有一个非常简单的 PrototypeJS 类,如下所示:
var Foo = Class.create({
initialize: function() {
this.bar = 'bar';
},
dostuff: function() {
$$('.enabled').each( function(elem) {
alert(this.bar); //FAIL
});
}
});
这会失败,因为传递给 .each() 的函数不知道 this 指的是什么。
如何从该函数内部访问类的 bar 属性?
最佳答案
尝试:
dostuff: function() {
var that = this;
$$('.enabled').each( function(elem) {
alert(that.bar); //FTW
});
}
或者,将上下文传递给 each()
:
dostuff: function() {
$$('.enabled').each( function(elem) {
alert(this.bar); //FTW
}, this); // Context
}
关于javascript - 为 PrototypeJS 类的类方法中的函数提供对类成员的访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1094782/