首先创建一个构造函数,并用它new一个实例对象,在没有原型时每个实例对象调用构造函数中的方法时都要开辟新的内存----->每个实例调用的方法不是同一个方法。
在构造方法中(任何函数具有一个prototype属性)有一个prototype属性,这个属性指向一个原型对象---->对象里面默认有constructor属性,指向prototype对象所在函数
这个对象的所有属性和方法,都会被构造函数的实例继承。通过构造函数得到的实例对象内部有一个__proto__指针指向构造函数的 prototype。 __proto__---->非标准属性
概括:
1、任何函数都具有一个 prototype 属性,该属性是一个对象
2、构造函数的 prototype 对象默认都有一个 constructor 属性,指向 prototype 对象所在函数
3、通过构造函数得到的实例对象内部会包含一个指向构造函数的 prototype 对象的指针 __proto__
4、所有实例都直接或间接继承了原型对象的成员