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

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(属性所在对象,要读取的属性名称);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值