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. 访问器属性
访问器属性不包含数据值
它们包含一对getter和setter函数,用于读取和写入对象中的属性值
访问器属性也有4个描述其行为的特性:
①[[Configurable]] 表示能否配置对应属性,包括能否删除、修改属性,能否把属性修改为访问器属性
②[[Enumerable]] 表示能否通过for-in循环返回属性
③[[Get]] 在读取属性时调用的函数
④[[Set]] 在写入属性时调用的函数
访问器属性不能直接定义,必须使用Object.defineProperty()或者Object.defineProperties()来定义3,设置属性特性
通过ECMAScript5的Object.defineProperty()和Object.defineProperties()可以修改属性特性
Object.defineProperty(属性所在对象,属性的名字,描述符对象); 这个方法只能一次修改一个属性
Object.defineProperties(属性所在对象,描述符对象集合对象); 可以一次修改多个属性
4,读取属性的特性
Object.getOwnPropertyDescriptor(属性所在对象,要读取的属性名称);
ECMA-262第5版定义只有内部才用的特性(attribute),它们用于描述属性(property)的各种特征
1. 数据属性
数据属性包含一个数据值的位置,在这个位置可以读取和写入值。
数据属性有4个描述其行为的特性:
①[[Configurable]] 表示能否配置对应属性,包括能否删除、修改属性,能否把属性修改为访问器属性
②[[Enumerable]] 表示能否通过for-in循环返回属性
③[[Writable]] 表示能否修改属性的值
④[[Value]] 包含这个属性的数据值
对于直接在对象上定义的属性,[[Configurable]]、[[Enumerable]]和[[Writable]]特性都被设置为true,而[[Value]]特性被设置为指定的值
2. 访问器属性
访问器属性不包含数据值
它们包含一对getter和setter函数,用于读取和写入对象中的属性值
访问器属性也有4个描述其行为的特性:
①[[Configurable]] 表示能否配置对应属性,包括能否删除、修改属性,能否把属性修改为访问器属性
②[[Enumerable]] 表示能否通过for-in循环返回属性
③[[Get]] 在读取属性时调用的函数
④[[Set]] 在写入属性时调用的函数
访问器属性不能直接定义,必须使用Object.defineProperty()或者Object.defineProperties()来定义3,设置属性特性
通过ECMAScript5的Object.defineProperty()和Object.defineProperties()可以修改属性特性
Object.defineProperty(属性所在对象,属性的名字,描述符对象); 这个方法只能一次修改一个属性
Object.defineProperties(属性所在对象,描述符对象集合对象); 可以一次修改多个属性
4,读取属性的特性
Object.getOwnPropertyDescriptor(属性所在对象,要读取的属性名称);
相关文章推荐
- 工作总结 @Html 辅助方法 为 生成的 标签设置元素属性 htmlAttributes 一个对象,其中包含要为该元素设置的 HTML 特性。
- JavaScript之面向对象的概念,对象属性和对象属性的特性简介
- js总结(一):javascript的类型:基本类型、对象和数组
- JavaScript中判断对象类型的几种方法总结
- javascript 理解对象--- 属性类型
- javascript中面向对象中对象,属性,原型链和一些扩展知识总结
- JavaScript 对象的属性类型
- JavaScript获取对象所有属性,显示变量类型
- Javascript中的高级特性及特别对象、属性和方法
- JavaScript中的Number类型、String类型、Global对象、Math对象总结
- javascript中对象的属性的特性
- 面向对象设计-----属性类型 读取属性特性
- javascript 理解对象--- 定义多个属性和读取属性的特性
- JavaScript对象中的属性能否有对象类型
- Javascript学习笔记:对象的属性类型
- javascript中对象的属性的特性
- 包装对象——JavaScript中原始类型拥有属性的原因
- Javascript中创建对象的几种类型总结
- javascript中对象的属性的特性
- JavaScript面向对象属性类型