黄子涵

5.10 属性的属性

虽然说起来有些绕口,不过属性也是有其属性的。表 5.1 总结了 ECMAScript 第 5 版中定义了的属性 。

在 ECMAScript 中,属性值被定位为“值属性”这样一种属性。使用这一定义的话,属性就成为了名称(属性名)和多个属性的集合。

表 5.1 属性的属性

属性的属性名 含义
writable 可以改写属性值
enumerable 可以通过for in 语句枚举
configurable 可以改变属性的属性。可以删除属性。
get 可以指定属性值的 getter 函数
set 可以指定属性值的 setter 函数

在表 5.1 的属性中,enumerable 是在 ECAMScript 第 5 版之前就被广泛使用的属性。在标准的对象中有一部分属性的 enumerable 属性为假而无法通过 for in 语句枚举。其中一个很容易理解的例子是数列的 length 属性。

虽然 ECMAScript 第 5 版对属性读写方法进行了标准化处理,不过在实际的 JavaScript 开发中,我们一般也不会用到对属性的读写。而 enumerable 也是标准对象所具有的属性,所以通常也不需要对自己生成的对象的属性显式地进行修改。不过属性本身确实有助于使代码更为健壮,或许随着 ECMAScript 第 5 版的普及,变更属性的情况也会变得越来越常见。

posted @ 2022-05-28 09:52  黄子涵  阅读(30)  评论(0编辑  收藏  举报