prototype属性

  创建的每个函数都有一个prototype(原型属性),实例和构造函数都有,构造函数中为prototype,实例为[prototype]。指向person prototype原型对象,原型对象中有一个constructor属性,指向该构造函数(谁的prototype指它,它就回指谁),原型才有constructor属性的(高程p155),但是有一点要注意:
用对象字面量的形式写原型的时候,是重写了整个原型对象。因为写法为:

Person.prototype={name:"medy",age="13"};

  可以看出,是用一个新对象的地址给了原型,即重写了prototype对象,所以此时的constructor属性变成了新对象的constructor属性(指向Object构造函数),不再指向Person函数。所以在jquery源码中,有constructor:jQuery,这样的修正指向问题。注意,虽然实例没有constructor属性,但由于原型对象的constructor也共享,所以person1.constructor也是对的。