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.getOwnProperyDescriptor(对象,属性名称)
for..in或者Object.keys可以获取自身以及原型链上的可枚举属性,然后通过hasOwnProperty可以获取自身的可枚举属性
参考:
JavaScript高级程序设计6.1理解对象
nodejs包merge-descriptors
个人博客地址 :http://blog.yangqiong.com.cn/dui-xiang-shu-xing/
数据属性
数据属性有四个特性,分别为:[[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/
相关文章推荐
- 特殊字符导致json字符串转换成json对象出错
- JS 数字格式千分位相互转换
- JavaScript学习之自定义对象
- jsp小结02 - JSP注释、声明、表达式、脚本
- jsp小结01 - JSP基本原理和特性
- js 数组去除的几种方法
- JS--WIKI
- jsp通过自定义标签库实现数据列表显示的方法
- jsp和servlet中实现页面跳转的方式实例总结
- JS实现的简单鼠标跟随DiV层效果完整实例
- JS实现模拟百度搜索“2012世界末日”网页地震撕裂效果代码
- JS实现的3D拖拽翻页效果代码
- JS实现的论坛Ajax打分效果完整实例
- 使用$.getJSON实现跨域ajax请求
- 前端开发学习笔记(一)深入浅出Javascript
- 关于JS一些验证邮箱的一些问题
- Javascript中this关键字详解
- js 基础
- JavaScript基本语法(第一
- 最短路径--Dijstra算法