次のコードを考慮してください。コンストラクタは、b、cのために更新されないのはなぜJavaScriptの継承とコンストラクタのプロパティ
function a() {}
function b() {}
function c() {}
b.prototype = new a();
c.prototype = new b();
console.log((new a()).constructor); //a()
console.log((new b()).constructor); //a()
console.log((new c()).constructor); //a()
- ?
- 相続が間違っていますか?
- コンストラクタを更新する最も良い方法は何ですか?
さらに、次の点を考慮してください。
console.log(new a() instanceof a); //true
console.log(new b() instanceof b); //true
console.log(new c() instanceof c); //true
- は
instanceof
がnew c()
がc
のインスタンスであることを知っているためにどのようにそれは可能ですが、(new c()).constructor
はa()
に等しく、Object.getPrototypeOf(new c())
がa{ }
であることを考えると?デフォルトでは
コンストラクタを更新する必要がある理由は何ですか?私は、その財産が存在しないふりをすれば、私の人生が簡単だとわかります。 – hugomg
私はこれを重複して閉じるのに苦労しています - 他のすべてのクエストはとても冗長です... – hugomg
'c.prototype'は' b() 'で、' b.prototype'は 'a()'です。 'c.prototype'は' a() ' –