上一题下一题

原型链属性查找、constructor 指向与 instanceof 在跨 iframe 场景下的失效原因

进阶版
来源:tencent中级工程师跨iframe原型隔离instanceof原理constructor指向原型链
草稿该题目为草稿状态,前台公开题库中不可见。
答案解析

这几个点本质上都和 JavaScript 的原型机制有关。

对象访问一个属性时,会先在对象自身上找,如果找不到,就沿着它的 [[Prototype]],也就是通常说的 proto ,一层一层往上找,直到找到属性或者到达 null 为止。这个查找链路就是原型链。

比如:

这里 p 自身有 name,所以访问 p.name 会直接拿到;p 自身没有 say,会去 p. proto 上找,也就是 Person.prototype。

constructor 其实不是实例对象自己的属性,而是默认存在于函数的 prototype 对象上的一个属性:

```js Person.prototype.constructor === Person p.constructor === Perso

登录后查看完整内容