var A = function() {
this.p1 = 2;
};
A.prototype.f1 = function() {
return 7;
};
var B = function() {
inherit(A, B);
};
function inherit(Child, Parent) {
Child.prototype = Object.create(Parent.prototype);
Child.prototype.constructor = Child;
}
var b = new B();
console.log(b.p1); // get undefined here
私はJSの新機能です。ダンプに関するご質問は申し訳ありません。私はB
をA
から継承したいと思います。私は間違って何をしていますか?JavaScript:ECMAScript5の継承
答えをありがとう! T.J.あなたが 'A.call(this);; –
@Rudziankoŭを呼び出したときに何が起こるかを少数の言葉で説明してください。@Rudziankoŭ:' A.call(x、y、z) 'を実行すると、関数' A' 'A'のコード中の' this 'を 'x'にし、' y'と 'z'を引数として渡すようにします。基本的に 'foo.bar(y、z)'が行うこと( '' bar''を 'foo'とする)を行いますが、オブジェクトのプロパティ式は必要ありません。 [MDNに関する詳細](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call) (そして 'A.apply'は' 'call''とまったく同じですが、引数を渡したい場合は、' '呼び出し' 'のように個々の引数の代わりに配列のようなオブジェクトとして与えます)。 –