ES6で次のクラスを考える:ES6方法の内側と外側のコンストラクタ - ノックアウト
class Test {
constructor() {
this.foo =() => console.log('Hello World');
}
bar() {
console.log('Hello World')
}
}
fooとbarの違いは何ですか?私は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'に特別に割り当てられた機能(たとえば、添付/廃棄)をオーバーライドできるようにすることです。
編集:回避策として、私はこのように扱うことができます。
class Test3 {
constructor() {
this.foo =() => _foo();
}
_foo() {
console.log('Hello World')
}
}
これは私がノックアウトでFOOを使用できるようにすると、まだ_fooを使用して、それを上書きすることができることになります。
'this 'なしで' foo() 'または' _foo()を呼び出すと、参照エラーになります。無限ループではありません – Bergi
私は' this.foo() – Frame91