说到原型链便少不了几个关键词prototype、_proto_、constructor。
js中所有的对象都包含_proto_(隐式原型)属性
js中所有的方法都包含prototype(显示原型)属性
js中的方法为对象,prototype也为对象
prototype对象包含_proto_和constructor两个属性
通过上面的了解是不是感觉有点乱呢?
先看一个例子:
function People(){this.name = 'zale';} var p1 = new People();
当你在谷歌浏览器中打印p1后如图:
现在梳理一下以上几个关键字的关系
这里边省略了constructor,是因为在原型链关系中,所有方法的prototype中的constructor指向该方法本身,没必要每一块都画出来,而且对于理解原型链也没有什么益处。
最后,附上一个链接,这里边有更细致的解读,同时如果存在问题的话,希望可以与君讨论。
参考: