-
构造函数
js中,当使用new操作符来作用于某个函数时,这个函数被视为构造函数(构造器); -
原型
js中,所有对象都具有一个私有属性:_proto_
,所有的构造函数都具有一个原型对象:protoType
,对象的_proto_
指向其构造函数的原型对象;
例如
fun(){...};
let ob = new fun();
则
ob._proto_ = fun.protoType;
-
原型链
在上例中,实例对象ob
的原型对象指向构造函数的原型对象fun.protoType
,而fun.protoType
作为一个对象,也有其自己的原型对象,依次类推,构成原型链;
由于基本上所有的对象都是Object
的实例,故原型链的最顶端为Object.protoType
;js规定,Object.protoType
的原型对象为null,null没有原型对象;所以一个基本的原型链应为:
ob --> fun.protoType --> Object.protoType --> null