Ala*_*res 3 javascript class-reference ecmascript-6
我有以下结构 Javacript es5-es6 并且控制器类丢失了类 Get 中的引用,我已经在调查,但找不到如何避免丢失引用。
class Controller {
constructor() {
this.name = 'Test';
}
test() {
console.log(1, this.name);
}
}
referenceController = new Controller();
// working reference: console.log(1, 'Test');
referenceController.test();
class Get {
method() {
return {
controller: referenceController.test
}
}
}
// Lost self reference: console.log(1, undefined)
new Get().method().controller()
Run Code Online (Sandbox Code Playgroud)
在本节中,您将测试函数添加为返回对象的属性。
{
controller: referenceController.test
}
Run Code Online (Sandbox Code Playgroud)
然后,当您将其作为该对象的方法调用时 ( method().controller())this引用该对象,并name从该对象中读取该属性。
您可以绑定上下文以保留引用:
referenceController.test.bind(referenceController)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1445 次 |
| 最近记录: |