js中每个函数(用function定义的对象)都有constructor属性。用new定义的对象和对象直接量({}形式的对象)没有constructor属性。该constructor指向对象的构造函数,有prototype属性,prototype属性指向一个prototype对象:
prototype和constructor相互引用
函数的constructor是 function Function(),而其他方式定义的对象的constructor(如果有的话)是function Object()
在使用new创建对象时会为该对象生成一个内置原型对象,他指向定义该对象的function的prototype对象,因此新创建的对象拥有其构造函数(或类)的prototype的方法。
想定义一个继承自某个对象的对象,只需要把子类的prototype设置为父类的一个(实例化)对象。
网友评论