JS原型链简介
-
JavaScript原型链机制
JavaScript中除了基本类型外的数据类型,都是对象。由于没有类(class)的概念(因为JavaScript只是一种简易的脚本语言),为了将所有的对象联系起来,就有了原型和原型链的概念
每个实例对象(object )都有一个私有属性(称之为 proto)指向它的原型对象(prototype)。该原型对象也有一个自己的原型对象 ,层层向上直到一个对象的原型对象为 null。根据定义,null 没有原型,并作为这个原型链中的最后一个环节。
例如:
Object有一个原型对象prototype
Array也有一个原型对象prototype
当我们新定义了一个Array的空对象时,我们可以直接访问一些属性
而JavaScript首先会检查我们要访问的属性是否直接存在于该对象上,如果不在,则会在
Array.prototype
中查找若仍然不在,那么因为Array本身也是Object,则
Array.prototype.__proto __= Object.prototype
,就会接着想上查找以上原型与原型层层相链接的过程即为原型链