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

JavaScript对象属性

2015-10-31 09:11 483 查看
JavaScript对象的属性有两类:数据属性和访问器属性

数据属性

数据属性有四个特性,分别为:

[[value]]属性的值

[[writeable]]属性是否可以修改

[[enumerable]]属性是否可枚举

[[configurable]]属性是否可配置,包括是否可删除,是否可修改属性的特性,是否可修改为访问器属性

通过一般方式默认的特性为undefined,true,true,true。通过defineProperty方式默认的特性为undefined,false,false,false。

注:如果通过defineProperty的操作未明确指定configurable为true,则属性的操作将受到限制(包括不能被修改,不能被删除,不能修改特性,不能修改为访问器属性)

访问器属性

访问器属性有四个特性,分别为:

[[get]]属性的值

[[set]]属性是否可以修改

[[enumerable]]属性是否可枚举

[[configurable]]属性是否可配置,包括是否可删除,是否可修改属性的特性,是否可修改为数据属性

通过一般方式默认的特性为undefined,undefined,true,true。通过defineProperty方式默认的特性为undefined,undefined,false,false。

注:如果通过defineProperty的操作未明确指定configurable为true,则属性的操作将受到限制(包括不能被修改,不能被删除,不能修改特性,不能修改为数据属性)

定义属性:

Object.defineProperty(对象,属性名称,属性描述符)

获取属性特性(属性描述符)

Object.getOwnProperyDescriptor(对象,属性名称)

自身属性

通过getOwnPropertyNames可以获取自身属性包括可枚举和不可枚举

for..in或者Object.keys可以获取自身以及原型链上的可枚举属性,然后通过hasOwnProperty可以获取自身的可枚举属性

参考:

JavaScript高级程序设计6.1理解对象

nodejs包merge-descriptors

个人博客地址 :http://blog.yangqiong.com.cn/dui-xiang-shu-xing/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: