【发布时间】:2018-04-27 19:24:45
【问题描述】:
如何使我的 objects 属性在回调中可用?
//entrypoint.js
var DeviceManager = require('./class')
DM = new DeviceManager()
DM.start();
var t = setInterval(function() {
console.log("Module.isLoaded = " + DM.isLoaded);
}, 500);
setTimeout(function() {
console.log("Stopping");
clearInterval(t);
DM.stop();
}, 10000);
//class.js
module.exports = class DeviceManager {
constructor(){
this.isLoaded = false;
this._timer= null;
}
start(){
console.log('starting timer')
this._timer = setInterval( function() {
console.log('timer callback')
this.isLoaded = !this.isLoaded;
},1000)
}
stop() {
console.log('stopping timer')
clearInterval(this._timer)
}
}
基本上这条线不起作用,因为它无法访问我认为的正确 this。
this.isLoaded = !this.isLoaded
此外,由于我在这方面还很陌生,因此非常欢迎任何反馈/更正。
【问题讨论】:
-
实际上,
this在这种情况下并不是指类。 -
@Philter 这是错误的副本。这与原型无关
标签: javascript class scope