如何在Loopback中创建可以访问自身的实例方法?

kom*_*tsu 0 methods instance strongloop loopbackjs

在我的一个LoopBack模型中,我想向模型添加一个实例方法,但它不会让我访问this,因为this在prototype方法中未定义:

module.exports = (MyModel) => {
  MyModel.prototype.doStuff = () => {
    console.log(this);  // outputs undefined
  }
}
Run Code Online (Sandbox Code Playgroud)

这显然限制了实例方法的有用性.有没有办法做到这一点?

evi*_*ive 6

问题是你正在使用箭头函数表达式.

一个箭头功能相比函数表达式表达具有较短的语法和不结合其自身的this,arguments,super,或new.target.

当你重写它时,function(){}你将可以访问模型的实例.