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值。