首页 > 技术文章 > 对象数据属性的特性中 writable, configurable,enumerable 默认值到底是啥!!

xtgame 2020-10-20 14:17 原文

总结

对象数据属性的特性中 writable, configurable,enumerable 默认值是需要分情况讨论的!!!

1)在使用Object.defineProperty()、Object.defineProperties() 或 Object.create() 函数的情况下添加数据属性,writable、enumerable和configurable默认值为false。

2)使用对象直接量创建的属性,writable、enumerable和configurable特性默认为true。

正文内容

var obj = {
//注意!!这里没有定义属性
}
Object.defineProperty(object1, 'property1', {
  value: 42,
  writable: false
});

Object.defineProperties(object1, {
  'property1': {
    value: true,
    writable: true
  },
  'property2': {
    value: 'Hello',
    writable: false
  }
  // etc. etc.
});

在上述代码中对象属性的writable、enumerable和configurable默认值为false

var obj = {
//注意!!这里定义了属性
name:’me’
}
Object.defineProperty(obj, ‘name’, {
  value: 'Change me'
});

在上述代码中name的writable、enumerable和configurable默认值为true

推荐阅读