gpt4 book ai didi

javascript - js - 卡住当前属性

转载 作者:行者123 更新时间:2023-11-30 17:28:35 25 4
gpt4 key购买 nike

有没有办法卡住对象的现有属性,从而允许向其添加新属性?

你好,
我有一个 window.foo 对象,其属性为 bar=1qux=2
我需要将这些卡住且不可重写。

使用这段代码很容易:

var foo = {};
Object.defineProperty(foo,"bar",{ "value":1 });
Object.defineProperty(foo,"qux",{ "value":2 });

但这可以很容易地被 window.foo={"bar":3}; 覆盖。

有什么办法吗?

谢谢:)

最佳答案

是的,我想我明白了。
关键是作为对象的不可写属性仍然可以修改(添加属性等),因为关于它的“不可写的东西”只是对象的地址。
我不知道这一点,现在证明这很容易!

//non-writable window.foo
Object.defineProperty(window,"foo",{
"enumerable":true,
"value":{}
});

//Non-writable foo.bar
Object.defineProperty(window.foo,"bar",{
"enumerable":true,
"value":1
});

//Non-writable foo.qux
Object.defineProperty(window.foo,"qux",{
"enumerable":true,
"value":2
});

就在这里! :)
感谢您的帮助。

关于javascript - js - 卡住当前属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23686220/

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