我在javascript中有这个课程
var MyGird = Class.extend({
classMemeber1 : "Some Value"
,clickEvent : function(){
this.editor.on({
afteredit: function() {
//
// HOW TO I ACCESS classMemeber1 from here? ?
//
//
}
})
})
如何从afteredit内部访问classMemeber1 ...
感谢
答案 0 :(得分:22)
您需要通过在变量中存储clickEvent
[1] 来保存对调用this
函数的对象的引用。由于闭包,它将在afteredit
方法中提供。
var MyGird = Class.extend({
classMemeber1: "Some Value",
clickEvent: function () {
var self = this; // save object reference
this.editor.on({
afteredit: function () {
// access classMemeber1 from here
// by using the stored reference
alert(self.classMemeber1);
}
});
},
// ...
});
[1] this operator in javascript(注意:'this'不是运营商)
答案 1 :(得分:2)
如果您编写ES6,则可以使用箭头功能:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions
在你的例子中,应该是(未经测试):
var MyGird = Class.extend({
classMemeber1: "Some Value",
clickEvent: () => {
this.editor.on({
afteredit: () => () {
alert(this.classMemeber1);
}
});
},
// ...
});