【问题标题】:Desciptor values are true描述符值为真
【发布时间】:2021-03-20 12:57:38
【问题描述】:
let obj = {windows : 10,wheels : 100,seats : 99};
console.log(Object.getOwnPropertyDescriptor(obj, 'wheels'))

输出:

Object { value: 100, writable: true, enumerable: true, configurable: true }

我在一篇文章中读到,对象描述符的默认值为 false,但以下代码显示了其他情况。谁能告诉我错误?

【问题讨论】:

  • 仅当您使用Object.definePropertyObject.defineProperties 方法创建属性时,默认值为false。
  • 使用Object.defineProperty() 创建属性时默认值为false,而不是使用普通对象初始化程序时。

标签: javascript object oop


【解决方案1】:

我在一篇文章中读到,对象描述符的默认值为 false...

只有当你调用Object.defineProperty或其表亲defineProperties(或使用Object.create的第二个参数)时,描述符对象中的标志的默认值都是false

let obj = {};
Object.defineProperty(obj, "wheels", {
    value: 100,
});
console.log(Object.getOwnPropertyDescriptor(obj, "wheels"))

当您在问题中通过直接分配创建属性时,它们都默认为true

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-04
    • 2017-04-23
    • 2018-03-25
    • 1970-01-01
    相关资源
    最近更新 更多