gpt4 book ai didi

javascript - Javascript 中的可枚举和可配置属性有什么作用?

转载 作者:行者123 更新时间:2023-11-30 12:48:44 25 4
gpt4 key购买 nike

我在 Javascript 中看到了这段代码:

Object.defineProperty(Pet.prototype, "petName", {
get: function () {
return this.petName;
},
set: function (petName) {
this.petName = petName;
},
enumerable: true,
configurable: true
});

这似乎是 Javascript 中属性的访问器方法。但是我不明白的是 enumerable: trueconfigurable: true。我在网上搜索了一下,但我还是不太明白Mozilla 文档中写的是什么。我尝试将它们设置为 false,似乎我仍然可以毫无问题地访问该属性,而且似乎没有什么区别。

这里的 enumerableconfigurable 属性究竟对访问器方法做了什么?如果有一个例子来说明他们的目的,那就太好了。

最佳答案

参见 MDN documentation for Object.defineProperty :

enumerable

true if and only if this property shows up during enumeration of the properties on the corresponding object.

即它是否出现在 for ... in 循环、Object.keys 等中

configurable

true if and only if the type of this property descriptor may be changed and if the property may be deleted from the corresponding object.

例如如果 configurable 设置为 false 然后您不能随后修改属性的描述符,也许将其更改回非 enumerable,或 可写

另见 ES5 specification .

关于javascript - Javascript 中的可枚举和可配置属性有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21700553/

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