杂记

这个过程发生了什么?
var obj={};
obj.name //undefined
访问obj对象的时候检索obj本身有没有name属性,如果没有?

根据obj.proto 找到obj对象的构造函数(Object) 的Object.prototype ,看下Object.prototype有没有封装name=属性。有就输出值没有就输出undefined。

为什么不继续往下找,因为Object.prototype.proto指向的是null.

Object.prototype是原型链的终点。

访问一个对象的属性||方法 是一种检索方式,这种检索方式我们称为原型链的检索方式。 能够检索的主要原因是JavaScript每个对象都有proto属性,这个属性关联自身对象的原型对象。

你可能感兴趣的:(杂记)