JavaScript对象的属性有两类:数据属性和访问器属性

数据属性

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

  1. [[value]]属性的值
  2. [[writeable]]属性是否可以修改
  3. [[enumerable]]属性是否可枚举
  4. [[configurable]]属性是否可配置,包括是否可删除,是否可修改属性的特性,是否可修改为访问器属性

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

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

访问器属性

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

  1. [[get]]属性的值
  2. [[set]]属性是否可以修改
  3. [[enumerable]]属性是否可枚举
  4. [[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/

JavaScript对象属性的更多相关文章

  1. 删除要被替换的元素的所有事件处理 程序和 JavaScript 对象属性

    使用本节介绍的方法替换子节点可能会导致浏览器的内存占用问题,尤其是在 IE 中,问题更加明显.在删除带有事件处理程序或引用了其他 JavaScript 对象子树时,就有可能导致内存占用问题.假设 某个 ...

  2. Javascript对象属性与方法汇总

    Javascript对象属性与方法汇总 发布时间:2015-03-06 编辑:www.jquerycn.cn 详细介绍下,javascript对象属性与对象方法的相关知识,包括javascript字符 ...

  3. JavaScript对象属性的基础教程指南

    JavaScript是使用“对象化编程”的,或者叫“面向对象编程”的.所谓“对象化编程”,意思是把JavaScript能涉及的范围划分成大大小小的对象,对象下面还继续划分对象直至非常详细为止,所有的编 ...

  4. JavaScript对象属性访问的两种方式

    JavaScript对象属性访问的两种方式 object.attribute object["attribute"] 例如: var employees = [ { "f ...

  5. JavaScript 对象属性

    JavaScript 对象属性 属性中的 . 和 [ ](点 和 方括号)的区别 .  :取对象自身的属性值: [ ]:括号内容可以是变量: var obj = {}; obj.name = 'Twx ...

  6. js 技巧 (六)JavaScript[对象.属性]集锦

    JavaScript[对象.属性]集锦 SCRIPT 标记 用于包含javascript代码. 语法 属性 LANGUAGE 定义脚本语言 SRC 定义一个URL用以指定以.JS结尾的文件 windo ...

  7. javascript对象属性和数组的访问

    javascript对象属性的访问 假如有对象test:var test = {  "a":1,  "b":2};直接访问对象test的属性a的值,有两种方法: ...

  8. 了解JavaScript 对象属性的标签

    对象属性的标签 value(属性值), writable(属性可写), enumerable(属性可枚举), configurable(属性可配置), 这些属性标签使对象所持有的属性体现出不同的特性, ...

  9. JavaScript对象属性(一)

    对象object  对象和数组很相似,数组是通过索引来访问和修改数据,对象是通过属性来访问和修改数据的. 这是一个示例对象: var cat = { "name": "W ...

  10. JavaScript对象属性 constructor

     对象属性 constructor 属性返回对创建此对象的数组函数的引用; constructor(构造函数) 在对象创建或实例化时候被调用的方法.通常使用该方法来初始化数据成员和所需资源.构造函数不 ...

随机推荐

  1. zoj3826 Hierarchical Notation (字符串模拟)

    Hierarchical Notation Time Limit: 2 Seconds      Memory Limit: 131072 KB In Marjar University, stude ...

  2. 7.17实习培训日志-java基础

    总结 今天主要是学习了java基础,java面向对象方面的知识,然后下午老师讲了软件的设计模式,今天看了一部分,印象深刻的是单例模式,用枚举实现单例模式.晚上主要讲了maven的一些基础知识和idea ...

  3. ACM-ICPC2018焦作网络赛 Participate in E-sports(大数开方)

    Participate in E-sports 11.44% 1000ms 65536K   Jessie and Justin want to participate in e-sports. E- ...

  4. windows和Dos常见命令总结

    linux最常见命令 (1) pwd命令pwd (即print working directory,打印工作路径) 命令的功能是显示当前的工作路径.如现在是在“/home/CAI”目录下,则可以用此命 ...

  5. codevs1251 括号

    1251 括号  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold       题目描述 Description 计算乘法时,我们可以添加括号,来改变相乘的顺序,比 ...

  6. 如何使用Xshell连接VMware上的Linux虚拟机

    前序:最近开始研究Hadoop平台的搭建,故在本机上安装了VMware workstation pro,并创建了Linux虚拟机(centos系统),为了方便本机和虚拟机间的切换,准备使用Xshell ...

  7. JSON解析器之jackson json数据和java对象转换

  8. ES6入门教程---变量和常量

    ES6提出了两个新的声明变量的命令:let 和 const 1. 建议不再使用var,而使用let 和const .优先使用const. 在定义之后值是固定不变的,即为常量 常量的值不能修改,但是如果 ...

  9. 我所接触到的JWT

    名称:JWT--->Json Web Token 用途:客户端请求服务端API时的认证方式之一 用法: 优点: 体积小(一串字符串),因而传输速度快 支持跨域验证,多应用于单点登录 传输方式多样 ...

  10. windows live writer 安装失败 0x80190194 解决方法

    windows live writer已经停止更新,部分安装包无法下载. 改安装windows软件包即可,其中包含windows live writer的安装. 参考: http://jingyan. ...