2017-05-17 6 views
1

「hello」ではなく「bye」が表示されるのはなぜですか?このブログの記事で説明されている継承チェーンによれば、私はそれが 'こんにちは'を記録すると思っていたでしょう。Javascriptのプロトタイプの継承では、期待されるメソッドが呼び出されません

http://sporto.github.io/blog/2013/02/22/a-plain-english-guide-to-javascript-prototypes/

class Test { 
    hello() { 
    console.log('hello') 
    } 
} 

Test.prototype.hello = function(){ 
    console.log('bye') 
} 

const t = new Test 
t.hello() 
+0

なぜ、あなたがそれを望まないのであれば、 'Test.prototype.hello'を上書きしますか?バイ以外の機能で何が起こると思いますか? – Bergi

+0

'class'構文の仕組みを知っていますか?あなたが読んだ記事によれば、 't'の継承連鎖はどのように見えますか? – Bergi

答えて

3

あなたは "プロトタイプ" にハローの定義を書き換えています。あなたはクラスTest()を行うと ...こんにちはクラスの構文は、ほとんどの機能の正常なプロトタイプ定義の上の糖である

Test.prototype.hello

のと同じです。

関連する問題