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 版的普及,变更属性的情况也会变得越来越常见。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!