gpt4 book ai didi

javascript : I could delete the property form object, 属性,定义为不可配置。为什么?

转载 作者:搜寻专家 更新时间:2023-11-01 05:27:15 24 4
gpt4 key购买 nike

var obj={};
Object.defineProperty(obj,'test',{value:300,configurable:false});
console.log(obj.test)
delete obj.test
console.log(obj)

可以删除定义为不可配置的“测试”属性。但据我所知,它不应该。有人可以解释为什么会这样吗。

最佳答案

如果您记录了 obj.test 而不是 obj,您会注意到该属性仍然存在并且实际上并未被删除。您必须设置 enumerable: true 以便在记录对象的属性(即对象本身)时显示该属性。默认设置为 false

使用默认值 enumerable: false 记录 obj.test:

var obj={};
Object.defineProperty(obj,'test',{value:300,configurable:false});
console.log(obj.test)
delete obj.test
console.log(obj)
console.log(obj.test)

使用 enumerable: true 记录 obj.test:

var obj={};
Object.defineProperty(obj,'test',{value:300,configurable:false,enumerable:true});
console.log(obj.test)
delete obj.test
console.log(obj)

关于javascript : I could delete the property form object, 属性,定义为不可配置。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58267082/

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