对象的数据属性和访问器属性
在javaScript中,对象的属性分为两种类型:数据属性和访问器属性。
一、数据属性
例如:

此外:
数据属性包含四个特性
用Object.getOwnPropertyDescriptor('对象','属性名')访问
configurable:表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或能否把属性修改为访问器属性,默认为true
enumerable:表示能否通过for-in循环返回属性
writable:表示能否修改属性的值
value:包含该属性的数据值。默认为undefined


修改属性属性的默认特性要用到一个方法:Object.defineProperty()方法

二、访问器属性
这个属性是通过Object.defineProperty(obj,'属性名',{})定义的,如下:

如上图:
其中,name属性为访问器属性,其特性不包含value和writable,多了set和get方法,并通过这两个方法写读属性值,但set和get方法没有任何关系,上例通过me来传递值(一般可以用对象的数据属性来传递)。
此外,访问器属性的configurable和enumerable特性值默认为false,因configurable为false,如果程序后面需要对该属性进行delete操作等,那就在定义访问器属性时,将这个特性设置为true,不然这个会导致后面一些报错的问题。
通过对象的数据属性传递访问器属性里面set方法设置的值

浙公网安备 33010602011771号