JavaScript中的对象有一个特殊的[[Prototype]]内置属性,其实就是对于其他对象的引用。几乎所有的对象在创建时[[Prototype]]属性都会被赋予一个非空的值。
我们一般在创建一个对象然后去引用它的值的时候都会触发默认的get操作,如果本身没有这个属性,就会用到prototype链。看代码
var obj = {
a:2
}
var newobj = Object.create(obj);//这个方法可以关联到obj
console.log(newobj.a)//2
如果obj中查找不到"a"的话就会继续查找完成的prototype链,最后get操作会返回一个undefined。
这是我简单的一个理解,不喜勿喷。欢迎评论不足