JavaScript对象类型之简单介绍

引言

对象是JavaScript的为主数据类型。
对象是一种复合值:将洋洋值(原始值或者此外对象)聚合在一齐,通过名字访问这一个值。
对象可以作为属性的无序聚集,每个属性都是一个名/值对。属性名是字符串。
目的还足以看做字符串到值的照射。
除却能够保障自有的特性,对象还足以从一个称作原型的对象继承属性–“原型式继承”是JavaScript的中坚特征。

对象的动态性

目标足以激增属性,也得以去除属性。
常见用于模拟静态对象以及静态类型语言种的“结构体”(struct)。有时它们也用做字符串的聚合(忽略名/值对种的值)。

对象的可变性

JavaScript中经过引用而非值来操作对象。

大面积用法

对象属性最常用的用法是:

  1. 创建(create)
  2. 设置(set)
  3. 查找(query)
  4. ECMAScript,删除(delete)
  5. 检测(test)
  6. 枚举(enumerate)

属性特性

在JavaScript对象的习性中,除了名字和值之外,还有一个与之休戚相关的值,称为“属性特性”(property
attribute):

  • 可写(writable attribute) — 表明是否可以安装该属性的值;
  • 可枚举(enumerable attribute) —
    讲明是否可以透过for/in循环重回该属性;
  • 可部署(configurable attribute) — 注明是否足以去除或涂改该属性。

目的特性

除外饱含属性之外,每个对象还有所六个相关的对象特性(object attribute):

  • 对象的原型(prototype)指向另外一个目的,本对象的性质持续自它的原型对象;
  • 对象的类(class)是一个象征对象类型的字符串;
  • 对象的增添标记(extensible flag)指明了(在ECMAScript
    5中)是否可以针对该对象添加新属性。

三类JavaScript对象和两类性质

三类JavaScript对象

  1. 内置对象(native
    object)是由ECMAScript规范定义的对象或类,例如,数组、函数、日期和正则表明式都是置于对象。
  2. 宿主对象(host
    object)是由JavaScript解释器所安放的宿主对象(比如Web浏览器)定义的;
  3. 自定义对象(user-defined
    object)是由运行中的JavaScript代码成立的目的;

    多少个属性

  4. 自有总体性(own property)是一向在对象中定义的特性;

  5. 持续属性(inherited property)是在对象的原型对象中定义的性质。