我在javascript中有这个类
var MyGird = Class.extend({
classMemeber1 : "Some Value"
,clickEvent : function(){
this.editor.on({
afteredit: function() {
//
// HOW TO I ACCESS classMemeber1 from here? ?
//
//
}
})
})
Run Code Online (Sandbox Code Playgroud)
我如何从afteredit内部访问classMemeber1 ...
谢谢
gbl*_*zex 27
您需要clickEvent通过在变量中存储this [1]来保存对象调用函数的引用.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);
}
});
},
// ...
});
Run Code Online (Sandbox Code Playgroud)
[1] 这个运算符在javascript中(注意:'this'不是运算符)
如果您编写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);
}
});
},
// ...
});
Run Code Online (Sandbox Code Playgroud)