Javascript prototype
的初始值在Object-Oriented Javascript 这本书第五章中提到:
prototype is a property that gets created as soon as you define the function.It’s initial value is a empty object
这句话应该是错误的。prototype
的初始值并不是一个空的对象,而是包含了constructor
这个属性,值既指向构造函数:
|
|
这样,后面的Own Properties versus prototype Properties小节的代码才能够说的通:
|
|
Gadget.prototype
是一个普通的对象,那么这个对象的constructor
默认应该是指向Object()
;
然而因为prototype
拥有一个constructor
的自身属性,也就是prototype.hasOwnProperty('constructor')
为true
,从而覆盖掉由继承而来的constructor值。