JavaScript 对象

首先对象是什么呢?

对象是JavaScript的基本数据类型。对象也可以看成**属性的无序集合**,每个属性都是一个名/值对。属性名是字符串,因此我们可以把**对象看成从字符串到值的映射**。然而对象不仅仅是字符串到值的映射,除了可以保持自有的属性,还可以从一个称为原型的对象继承属性。对象的方法是继承的属性。

除了字符串,数字,null,undefined,true,false之外,JavaScript的值都是对象。

对象的方法以及特征

对象最常见的用法是**创建,设置,查找,删除,检测和枚举**它的属性。

除了名字和值之外,每个属性还有一些与之相关的值,称为“属性特征”:
  • 可写,表明是否可以设置该属性的值。
  • 可枚举,表明是否可以通过for/in循环返回该属性。
  • 可配置,表明是否可以删除或修改该属性。
除了包含属性之外,每个对象还拥有三个相关的对象特性:
  • 对象的原型(prototype)指向另外一个对象,本对象的属性继承自它的原型对象。
  • 对象的类(class)是一个标识对象类型的字符串。
  • 对象的扩展标记(extensible flag)指明了(在ECMAScript5中)是否可以向该对象添加新属性。
最后我们用下面这些术语来对三类JavaScript对象和两类属性作区分:
  • 内置对象(native object)是由ECMAScript规范定义的对象或类。例如,数组、函数、日期和正则表达式都是内置对象。
  • 宿主对象(host object)是由JavaScript解释器所嵌入的宿主环境(比如Web浏览器)定义的。客户端JavaScript中表示网页结构的HTMLElement对象均是宿主对象。既然宿主环境定义的方法可以当成普通的JavaScript函数对象,那么宿主对象可以当成内置对象。
  • 自定义对象(user-defined object)是由运行中的JavaScript代码创建的对象。
  • 自有属性(own property)是直接在对象中定义的属性。
  • 继承属性(inherited property)是在对象的原型对象中定义的属性。

创建对象

创建对象的方法有三种,一是对象直接量,二是通过new关键字,三是Object.create()。

相关推荐