gpt4 book ai didi

javascript - constructor.prototype.property 在 Javascript 中的作用是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:04:13 26 4
gpt4 key购买 nike

var x = { foo: "A" };
x.constructor.prototype.foo = "B";
var y = {};

运行此代码后,x.foo 返回“A”,这是可以理解的。但是 y.foo 返回“B”,即使 y 是一个空对象。我很想知道 x.constructor.prototype.foo 到底做了什么?

提前感谢大家。

最佳答案

对象的constructor 属性指向构造该对象的构造函数。您的 x 变量是一个对象文字,因此由 Object() 构造函数构造。因此,访问 x.constructor.prototype 与访问 Object.prototype 是一样的。

所有构造函数都有一个 prototype 属性,它构成了原型(prototype)链的一部分。基本上,当您尝试访问任何对象的某个属性时,该属性实际定义在对象上,然后 JavaScript 引擎会沿着原型(prototype)链向后查找以查看该属性是否在原型(prototype)上定义链内。

因为您的 y 变量也是一个对象文字,因此也是由 Object() 构造的,当您尝试访问y.foo,由于foo属性存在于y上,因此开始原型(prototype)链搜索,这立即点击 Object.prototype.foo,如您所知,它已分配给 “B”

关于javascript - constructor.prototype.property 在 Javascript 中的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28254498/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com