我有两个类Car
和Maruti
。当我使用继承时,将Maruti
的原型分配给新的Car
对象。为什么我必须将Maruti.prototype.constructor
设置为Maruti
。显示在下面的代码中。无法理解<x> .prototype.constructor?
function Car(){
}
function Maruti(){
}
Maruti.prototype = new Car()
Maruti.prototype.constructor = Maruti
无法理解代码的最后一行。有人可以详细解释吗?
广告标题:你问我们不管你是无法理解 .prototype.constructor?可能是的,否则你不会问。 –
TMS
构造函数可以通过以下方式使用:'Person.prototype.haveChild = function(){return new this.constructor()}'这应该返回一个新的Person,但是如果你有Person从其他对象继承, Person.prototpe.constructor所以它指向错误的构造函数。你可能永远不会使用构造函数,很多示例代码都会忽略它(就像曾经发布过的'Maruti.prototype = Object.create(Car.prototype)'')但是如果你(或者某个扩展或使用你的代码的人)想要使用它晚些时候你需要修复它。 – HMR
设置继承时最好不要调用“Parent”构造函数代码。在不调用构造函数的情况下设置原型[/ color] http://stackoverflow.com/questions/16063394/prototypical-inheritance-writing-up/16063711#16063711 – HMR