私はこのコードを持っています:
function Stickman() {
//some methods and properties
}
function JuniorStickman() {
Stickman.call(this);
this.p = new value // override a property in Stickman
}
JuniorStickman.prototype = new Stickman();
junior = new JuniorStickman();
このコードは、MDN の例から変更しました: https://developer.mozilla.org/en-US/docs/JavaScript/Introduction_to_Object-Oriented_JavaScript
私が理解していないのはこれです: call() と行
JuniorStickman.prototype = new Stickman()
同じことをしているようです。行をコメントアウトすると
JuniorStickman.prototype = new Stickman();
私の JuniorStickman には、Stickman のすべてのメソッドとプロパティがまだあります。真実; 彼のプロトタイプ プロパティは現在、Stickman ではなく JuniorStickman ですが、問題ではないようです。
ジュニア スティックマン (ジュニア) にスティックマンのすべてのメソッドを持たせるには、ここでどのように作業を呼び出しますか? また、プロトタイプの割り当ては必要ですか?
私が理解しているように、 call() は実際には継承を与えていません。プロパティを追加/オーバーライドできる Stickman の一種のコピーを取得しています。これは正しいです?