gpt4 book ai didi

javascript - 构造函数的属性会发生什么情况?

转载 作者:行者123 更新时间:2023-11-28 16:01:32 24 4
gpt4 key购买 nike

假设有:

function someConstructor(){
// initialize
}
someConstructor.prop = {test:'test'};

var obj1 = new someConstructor();
var obj2 = new someConstructor();

我的猜测是 prop 仍然只有一份副本可通过someConstructor.prop获取对于 obj1obj2可通过 someConstructor 获得。

最佳答案

原型(prototype)用于确保所有实例都有 1 个且只有 1 个对象。然而,这些实例可能会用它们自己的对象覆盖该原型(prototype)。至少在 Firefox 中,设置 Test.opts 不允许 o1o2 继承它。但设置 Test.prototype.opts 可以。

尝试以下操作:

var Test = function () {};
Test.opts = {helo: "hello"};

var o1 = new Test();
var o2 = new Test();
console.log( o1.opts ); // undefined
o1.opts = {helo: "bye"};
console.log( o2.opts ); // undefined

Test.prototype.opts = {helo: "hello"};
console.log( o1.opts ); // Object { helo: "bye" }
console.log( o2.opts ); // Object { helo: "hello" }

关于javascript - 构造函数的属性会发生什么情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16826167/

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