【发布时间】:2012-10-09 08:47:34
【问题描述】:
在阅读一本关于 JavaScript 的书时,我读到了该书
“直接在对象上定义”时,Data Properties 的所有属性默认为 true。
然后经过一些描述,它又说
“当您使用 Object.defineProperty()” 时,可配置、可枚举和 除非另有说明,否则可写默认为 false。
我猜,在第一条语句中“直接在对象上定义”是指使用点运算符或对象字面量表示法,如下所示:
var obj = new Object();
obj.name = "Mahesh";
但是,在通过任一方法将属性添加到对象之后,是否有任何方法可以试验检查这些属性已设置为什么?
【问题讨论】:
-
console.log(obj)怎么样?在 Chrome 控制台或 FireBug 中,您应该能够展开该节点并查看其所有属性的设置。 -
至少有Object.propertyIsEnumerable。我不确定
configurable和writable。 -
@bfavaretto 你说得对,使用 Object.propertyIsEnumerable() 至少可以测试我对 [[enumerable]] 的理解,它的行为与书中所说的完全相同
-
@MicahHenning 我认为我们只能在 Chrome 控制台窗口中看到对象的属性,但看不到 property attributes
标签: javascript