起首对象是什么呢?
对象是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()。