js属性类型(数据属性和访问器属性)
2017-03-17 16:40
267 查看
写这篇文章的目的是因为本人在学习这块知识的时候发现网上找的资料基本上都是照抄书上的,几乎没有加入自身理解,而书中我虽然觉得讲的很详细,但是也很啰嗦,以至于有时候读不通(我就是读了好几遍加上观察了很多才明白讲了些什么,才把概念之间的东西弄明白)。
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高级程序设计(第三版)第六章》
相关文章推荐
- js中字符串基本数据类型能调用属性和方法的原理
- JS入门难点解析13-属性描述符,数据属性和访问器属性
- js中判断数据类型的属性typeof、instanceof、 constructor、 prototype
- JavaScript学习10 JS数据类型、强制类型转换和对象属性
- 属性类型:数据类型,访问器类型的坑
- 【JS】对象3种属性:数据属性/访问器属性/内部属性
- JS数据属性和访问器属性
- 4.2、JS——var 数据类型 节点标签属性操作 动态获取方法
- JS对象高级属性:数据属性与访问器属性
- JS中的克隆与数据属性和访问器属性
- JS中的数据属性和访问器属性
- JS 数据属性 & 访问器属性
- 关于数据序列化(5),定制FastJSON序列化(解决Java大Long类型js的Number接收丢失数据的问题,不序列化某些属性)
- JavaScript 属性类型(数据属性和访问器属性)
- JS属性-------内部属性(数据属性和访问器属性)
- js实现数组项升序、降序 方法(适用大部分数据类型)
- JS数据类型转换 - 数字转换
- js基础:数据类型,变量命名规范
- JS中Number数据类型需要注意的事项
- js、变量、标识符、字面量、数据类型