なぜ、これは他のほとんどの言語でもうまくいかないでしょう。ES6ではなぜこれを使わないで兄弟方法を参照できませんか?
class Test {
a() {
console.log('hi');
}
b() {
a();
}
}
JavaまたはRubyではこれが機能します。 aからbを呼び出すことは、完全にOKですが、Javascriptクラスで行われます。なぜ私はthis.a
、this.b
、これをこれに置きますか?
それの背後にある技術的な理由は何ですか、それは何のメリットですか、それは今のところ変わりつつありますか?計画はありますか?
変更されません。利益は、指定された名前が参照するものに関してJavaScriptの単純な規則を維持することです。なぜなら、 'Test'は' a'を定義していませんが、継承したクラスは 'a()'がまだ 'this.a()'を意味するのでしょうか?) 。 – Ryan
"*それの背後にある技術的な理由*"に関しては、Brendan Eichに尋ねるのが一番です。しかし、彼はわずか10日でECMAscriptになっているものの基礎を書いていて、クラスではなくプロトタイプの継承を実装していたことを覚えておいてください。その答えは「*当時は良いアイデアのように思えました」。 ;-) – RobG
@Ryan子クラスが 'Test'を継承している場合、そのクラスのインスタンスは子の' a'を参照し、 'Test'で定義されているかどうかにかかわらず、'子クラス'。 –