试验JavaScript属性属性默认值

试验JavaScript属性属性默认值,javascript,Javascript,在读一本JavaScript的书时,我读到了这一点 当直接在对象上定义时,数据属性的所有属性默认为true 然后经过一些描述,它又说 “当您使用Object.defineProperty()”时,可配置、可枚举和 除非另有规定,否则可写默认值为false 我猜,在第一条语句中,“直接在对象上定义”意味着使用点运算符或对象文字符号,如下所示: var obj = new Object(); obj.name = "Mahesh"; 但是,在通过任何一种方法将属性添加到对象后,是否有任何方法可以试

在读一本JavaScript的书时,我读到了这一点

当直接在对象上定义时,数据属性的所有属性默认为true

然后经过一些描述,它又说

“当您使用Object.defineProperty()”时,可配置、可枚举和 除非另有规定,否则可写默认值为false

我猜,在第一条语句中,“直接在对象上定义”意味着使用点运算符或对象文字符号,如下所示:

var obj = new Object();
obj.name = "Mahesh";
但是,在通过任何一种方法将属性添加到对象后,是否有任何方法可以试验检查这些属性设置为什么?

您可以使用:


desc
将包含标志
可配置
可枚举
。如果属性是数据描述符(无
get
set
),则
desc
还将包含
和标志
可写
。如果属性是访问器描述符,
desc
还将包含
get
set
方法。

那么
console.log(obj)
呢?在Chrome控制台或FireBug中,您应该能够扩展该节点并查看其所有属性的设置。我不确定
可配置
可写
@bfareto是否正确,使用Object.propertyEnumerable()至少可以测试我对[[enumerable]的理解它的行为与书中描述的一模一样says@MicahHenning我认为我们只能在Chrome控制台窗口中看到对象的属性,而不能看到令人愉快的消息。
defineProperty
上的MDN页面缺少指向该属性的链接。
> var desc = Object.getOwnPropertyDescriptor(obj, 'name');
{"value":"Mahesh","writable":true,"enumerable":true,"configurable":true}