js中有两种属性:数据属性和访问器属性。
1、属数据属性默认的特性有4个:
(默认前三个属性都为true)
configurable: 表示能否通过delete删除属性从而定义新属性,为false则不能变为可配置的了。
enumerable:可通过for … in枚举
writable:可写
value:属性的值
2、要修改属性默认的特性,必须使用
Object.defineProperty(属性所在的对象,属性的名字,描述符对象)方法,
描述符对象的属性必须是configurable、enumerable、writable、value,设置其中一或多个值,可以修改对应的特性值。
使用Object.defineProperty创建一个新属性时,configurable、enumerable、writable默认都为true.
3、访问器属性的4个特性:
configurable: 表示能否通过delete删除属性从而定义新属性,为false则不能变为可配置的了。
enumerable:可通过for … in枚举
get: 在读取属性时调用的函数
set:在写入属性时调用的函数
4、读取属性的特性:
Object.getOwnPropertyDesxriptor(属性所在的对象,要读取其描述符的属性名称)方法