1、因为单纯通过构造函数创建对象,每个实例对象想要使用构造函数中的方法。每个对象调用一次就要开辟一个内存空间。如果想要调用的方法,每次都指向同一个内存空间,这时就要使用原型。原型的作用就是节省内存空间,数据共享。
2、原型链是一种关系,是实例对象和原型对象之间的关系,他是通过实例对象中的原型(_ proto _)联系的。因为实例对象的原型(proto)指向的是所在构造函数的原型对象(prototype)。如果构造函数的原型对象(prototype)指向改变了,则实例对象的原型(proto)也相应改变。

3、只要是对象,就会有原型(proto),所以原型对象(prototype)下面也有(proto),它指向的是Object构造函数下的原型对象(prototype),Object构造函数下的原型对象(prototype)下的(proto)指向的是null。

4、一定要先改变原型指向,再添加原型方法。
5、js是动态语言,对象.属性的方式可以认为是声明了这个属性但没有赋值,输出结果是undefined。但是如果直接console.log(未生名的属性);则会报错。
6、 继承后的原型指向关系。反映出,继承后的原型链也是实例对象和原型对象之间的关系。

网友评论