var MyObj = core.Class.extend({
connect: function() {
$('body').keydown(function (e) {
// want to call disconnect() in here
});
},
disconnect: function() {
}
});
我试过打电话给disconnect()
,this.disconnect()
,但他们都回来了,
ReferenceError:未定义disconnect
这里的变量core
是:
core = require('some_module')
您需要将this
上下文存储到变量中。
您的代码正在使用此函数的this
上下文:$('body').keydown(function (e) {...}
var MyObj = core.Class.extend({
connect: function() {
var $self = this;
$('body').keydown(function(e) {
$self.disconnect();
});
},
disconnect: function() {}
});
this
不是正确的this
。
用这个 :
$('body').keydown((e)=>{
// this.disconnect() in here
})
代替
Lambda函数保留它们运行的上下文。
您还可以使用绑定函数,并保留一个保持上下文的变量,然后引用该变量