无法从原型函数访问父变量

时间:2017-05-10 17:53:26

标签: javascript node.js prototype

我有一个JavaScript类,大致如下:

function StateManager () {
  this.storeDir = { read: (a, b) => { return false } }
  this.state = this.storeDir.read('./state.json', 'json') || { state: 'new' }
}

StateManager.prototype.update = () => {
  console.log(this.state.state)
}

module.exports = new StateManager()

假设这是一个名为“StateManager.js”的文件,并且我们在同一个文件夹中有另一个文件,我应该可以按如下方式调用它:

let StateManager = require('./StateManager')

console.log(StateManager)
StateManager.update()

我希望看到StateManager对象后跟当前状态,因为我们使用的是虚函数将永远是“新”。但是,由于某些未知原因,this中的.update()是一个空对象,因此this.state.state出错。 StateManager似乎包含一个受欢迎的StateManager对象,但是我无法理解为什么会这样。有没有办法在this.state函数中访问StateManager.prototype.update

0 个答案:

没有答案