js属性类型(数据属性和访问器属性)

写这篇文章的目的是因为本人在学习这块知识的时候发现网上找的资料基本上都是照抄书上的,几乎没有加入自身理解,而书中我虽然觉得讲的很详细,但是也很啰嗦,以至于有时候读不通(我就是读了好几遍加上观察了很多才明白讲了些什么,才把概念之间的东西弄明白)。

js属性类型:数据属性和访问器属性

js属性类型包含两种,1.数据属性。2.访问器属性。我将从两者之间的区别分析尽量讲明白。首先它们两者都含有4个描述其行为的特性。
数据属性:[[Configurable]],[[Enumerable]],[[Writable]],[[Value]];
访问器属性:[[Configurable]],[[Enumerable]],[[Get]],[[Set]]。
下边引用下书中概念:ECMA-262定义这些特性是为了实现JavaScript引擎用的,因此在JavaScript中不能直接访问它们。为了表示特性是内部值,该规范把它们放在了两对方括号中。
属性含义解释:
1. [[Configurable]]:表示是否能通过delete删除属性从而重新定义属性,能否修改属性的特性,能否把属性修改为访问器属性(如果是访问器属性调用则后边一句应改为“能否把属性修改为数据属性”,所以可以视为根据调用属性不同之间的切换)。
2. [[Enumerable]]:表示能否用for-in循环返回。
3. [[writable]]:表示能否修改属性的值。
4. [[Value]]:包含这个属性的数据值。读取属性值的时候从这个位置读,写入属性值的时候更新到这个位置,默认值为undefined。
5. [[Get]]:读取属性时调用的函数,默认undefined。
6. [[Set]]:写入属性时调用的函数,默认undefined。
通过概念很明显可以看出来[[Configurable]],[[Enumerable]]是两个属性都存在的描述行为。所以两者之间的区别可以从其描述属性中加以区别。解释就到这里,建议读者再配合书本概念及代码加以了解(推荐)《JavaScrippt高级程序设计(第三版)第六章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值