为了账号安全,请及时绑定邮箱和手机立即绑定

javascript对象的属性标签默认的不是false吗?

javascript对象的属性标签默认的不是false吗?

慕标琳琳 2018-08-26 12:56:02
1.let d1 = Object.getOwnPropertyDescriptor({name: "hello"}, 'name');console.info(d1);为什么打印出来是{ value: 'hello',  writable: true,  enumerable: true,  configurable: true }而通过Object.defineProperties()定义的属性,这几个默认就是false
查看完整描述

1 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

这个问题在MDN上 defineProperty 有解释,摘录如下:

  1. 该方法(指的是defineProperty)允许精确添加或修改对象的属性。这个方法允许修改默认的额外选项(或配置)。默认情况下,使用 Object.defineProperty() 添加的属性值是不可修改的。(即默认是false)

  2. 通过赋值操作添加的普通属性是可枚举的(比如本题目中使用JSON格式创建的对象,相当于是var a = {}; a.name='hello';,实际是赋值操作),能够在属性枚举期间呈现出来(for...in 或 Object.keys 方法), 这些属性的值可以被改变,也可以被删除。


查看完整回答
反对 回复 2018-08-27
  • 1 回答
  • 0 关注
  • 746 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信