prototype:构造函数拥有一个对象,称为构造函数的原型属性,可以通过 构造函数prototype进行访问。
__proto__: 构造函数所创造出的实例对象,可通过该属性访问原型对象。
constructor: 是原型下的一个属性,构造器。可认为是原型下的一个方法,指向构造函数本身。
原型继承:实例对象继承自原型的属性或方法。
原型式继承:利用修改原型链的结构(增加一个节点,删除一个节点,修改节点中的成员),来使得实例对象可以使用整体链中的所有成员。
如:Person.prototype = [ ];
//这样子就拥有了【】数组的所有方法 如 push() 方法。
混合继承:实例对象继承于原型,原型又继承于别的对象。
原型链:即构造函数里面有原型,原型里面有原型。(可认为对象有原型,原型是对象)。
****凡是使用构造函数创建出来的对象,并且没有修改其原型属性就说该对象保留默认的原型链。
如:function Person() { };
var p = new Person();
//原型链结构如下
p --> person.prototype --> object.prototype --> null;
原型链结构:
静态成员:即构造函数自身带来的属性与方法。
实例成员:后天人动态地为对象添加的属性或者方法。(可由实例对象直接访问到的属性或者方法)
注:个人学习笔记