js 的prototype和constructor
2015-12-14 本文已影响65人
SecondRocker
js中每个函数(用function定义的对象)都有constructor属性。用new定义的对象和对象直接量({}形式的对象)没有constructor属性。该constructor指向对象的构造函数,有prototype属性,prototype属性指向一个prototype对象:
![](https://img.haomeiwen.com/i19532/52fef14bc319d7fa.jpg)
函数的constructor是 function Function(),而其他方式定义的对象的constructor(如果有的话)是function Object()
在使用new创建对象时会为该对象生成一个内置原型对象,他指向定义该对象的function的prototype对象,因此新创建的对象拥有其构造函数(或类)的prototype的方法。
想定义一个继承自某个对象的对象,只需要把子类的prototype设置为父类的一个(实例化)对象。