您的位置:首页 > Web前端 > JavaScript

javascript中的对象属性类型与特性总结

2018-02-06 17:46 260 查看
ECMAScript中有两种属性:数据属性访问器属性
ECMA-262第5版定义只有内部才用的特性(attribute),它们用于描述属性(property)的各种特征

1. 数据属性
数据属性包含一个数据值的位置,在这个位置可以读取和写入值。
数据属性有4个描述其行为的特性:
①[[Configurable]]      表示能否配置对应属性,包括能否删除、修改属性,能否把属性修改为访问器属性
②[[Enumerable]]         表示能否通过for-in循环返回属性
③[[Writable]]   表示能否修改属性的值
④[[Value]]   包含这个属性的数据值
对于直接在对象上定义的属性,[[Configurable]]、[[Enumerable]]和[[Writable]]特性都被设置为true,而[[Value]]特性被设置为指定的值
2. 访问器属性
访问器属性不包含数据值
它们包含一对gettersetter函数,用于读取和写入对象中的属性值
访问器属性也有4个描述其行为的特性:

①[[Configurable]]      表示能否配置对应属性,包括能否删除、修改属性,能否把属性修改为访问器属性
②[[Enumerable]]         表示能否通过for-in循环返回属性
③[[Get]]          在读取属性时调用的函数
④[[Set]]   在写入属性时调用的函数
访问器属性不能直接定义,必须使用Object.defineProperty()或者Object.defineProperties()来定义3,设置属性特性
通过ECMAScript5的Object.defineProperty()Object.defineProperties()可以修改属性特性
Object.defineProperty(属性所在对象,属性的名字,描述符对象);  这个方法只能一次修改一个属性
Object.defineProperties(属性所在对象,描述符对象集合对象);      可以一次修改多个属性

4,读取属性的特性
Object.getOwnPropertyDescriptor(属性所在对象,要读取的属性名称);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: