3

と の 2 つのクラスがCarありMarutiます。のプロトタイプMarutiを新しいCarオブジェクトに割り当てて継承を使用すると。Maruti.prototype.constructorを に設定する必要があるのはなぜですかMaruti。以下のコードに示されています。

function Car(){
}

function Maruti(){
}

Maruti.prototype = new Car()
Maruti.prototype.constructor = Maruti

コードの最後の行を理解できません。誰か詳しく説明してくれませんか?

4

3 に答える 3

0

Maruti.prototype = new Carを設定する前は、prototypeMarutiプロパティは 1 つだけで、それ自体constructorに設定されています。Maruti

function Car() {}

function Maruti(){}

console.log(Maruti.prototype); // logs the following
                               // {
                               //     constructor: Maruti
                               // }

Maruti.prototype = new Car;
Maruti.prototype.constructor = Maruti;

をプロパティprototypeに設定した後は失われます (同じオブジェクトではないため)。代わりに になります(から継承されているため)。したがって、プロパティを再度設定します。Marutinew CarconstructorMaruti.prototype.constructorCarCar.prototypeconstructorMaruti

より視覚的な説明については、次の回答をご覧ください: https://stackoverflow.com/a/8096017/783743

于 2013-07-18T06:43:12.010 に答える