2018-01-18

精细化设置对象属性的四个特征

在js中一切皆对象。对象是属性无序的集合,属性由属性名和属性值组成,属性值也都是对象,即属性值既可以是基本数据类型,也可以是引用数据类型。在对对象中的属性进行操作时,会涉及到属性的四个特征:configurable、writable、enumerable,value。

一.设置对象属性四个特征的语法

语法格式: Object.defineProperty(对象名,属性,{特征设置});

二.解析属性的四个特征

2.1 configurable

configurable决定该属性是否可以删除,默认是true,可删除。例:

2018-01-18_第1张图片
图2.1.1

当设置configurable的值为false时,则属性就不能被删除:

2018-01-18_第2张图片
图2.1.2

2.2 writable

writable决定此属性的值是否可以覆盖重写,相当于当writable的值为false的时候,这个属性此时就转化为了常量,值不可更改。writable的值默认值为true。

2018-01-18_第3张图片
图2.2.1

当writable的值为false的时候,属性值就不能更改了:

2018-01-18_第4张图片
图2.2.2

2.3 enumerable

enumerable决定属性是否可以枚举,默认是false。

2018-01-18_第5张图片
图2.3.1

当enumerable的值为false的时候,属性值就不能枚举:

2018-01-18_第6张图片
图2.3.2

2.4 value

value是给属性设置值,默认是undefined。

2018-01-18_第7张图片
图2.4.1

三. 设置属性四个特征时应当注意

configurable属性一旦设置就不能修改,例:

2018-01-18_第8张图片
图3

你可能感兴趣的:(2018-01-18)