给出下面的类ES6:ES6方法内外构造 - 淘汰赛
class Test {
constructor() {
this.foo =() => console.log('Hello World');
}
bar() {
console.log('Hello World')
}
}
是什么foo和酒吧之间的区别?我可以通过this调用这个(this.foo,this.bar)。但是,如果我在knockoutJS中使用这种语法,Knockout无法找到bar()。
class Test2 {
constructor() {
this.foo =() => this.foo(); // endless loop
}
foo() {
console.log('Hello World')
}
}
我不知道这是有道理的,但我想有什么你可以看到Test2
。主要是,我想在我的挖空应用程序中获得覆盖功能。如果我从Test1
延伸并覆盖foo
,我将无法拨打super.foo()
。
我的目标是启用类继承,同时允许覆盖专门分配给“this”的函数(例如,attach/dispose)。
编辑:作为一种变通方法,我可以处理此类似:
class Test3 {
constructor() {
this.foo =() => _foo();
}
_foo() {
console.log('Hello World')
}
}
这将让我在淘汰赛使用foo和仍然能够使用_foo来覆盖它。
不带'this'调用'foo()'或'_foo()'将永远是一个引用错误,而不是无限循环 – Bergi
对不起,我打算说'this.foo()' - 编辑它 – Frame91