在 ECMAScript 中,所有对象并非同等创建的。
一般来说,可以创建并使用的对象有三种:本地对象、内置对象和宿主对象,对象还包含两类属性:自有属性、继承属性。

JavaScript对象
一、JavaScript三大对象
1.本地对象
- 与宿主无关,独立于宿主环境的
ECMAScript实现提供的对象。- 简单来说,本地对象就是
ECMA-262定义的类(引用类型)。- 这些引用类型在运行过程中需要通过
new来创建所需的实例对象。
本地对象包括:
- 常见引用类型:
Object、Function、Array、Date、RegExp -
基本包装类型:
String、Boolean、Number -
其他类型:
Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError等
有关引用类型更详细的用法可参考《【JS基础】JavaScript引用类型》
有关基本包装类型更详细的用法可参考《【JS基础】JavaScript引用类型之基本包装类型》
2.内置对象
- 与宿主无关,独立于宿主环境的
ECMAScript实现提供的对象,在ECMAScript程序开始执行时出现。- 在
ECMAScript程序开始执行前就存在,本身就是实例化内置对象,开发者无需再去实例化。- 内置对象是本地对象的子集。
- 包含:
Global和Math。ECMAScript5中增添了JSON这个存在于全局的内置对象。
有关内置对象属性与方法的用法可参考《【JS基础】JavaScript内置对象》
3.宿主对象
- 由
ECMAScript实现的宿主环境提供的对象,包含两大类,一个是宿主提供,一个是自定义类对象。- 所有非本地对象都属于宿主对象。
- 对于嵌入到网页中的
JS来说,其宿主对象就是浏览器提供的对象,浏览器对象有很多,如Window和Document等。- 所有的
DOM和BOM对象都属于宿主对象。
(1)宿主提供的对象
指JavaScript运行环境(即浏览器)提供的对象,由浏览器厂家自定义提供实现,早期存在较大的兼容性问题,当前其中一些主要的对象已经被大部分浏览器兼容;具体分为如下两大类:
-
BOM对象:
Window、Navigator、Screen、History、Location -
DOM对象:
Document、Anchor、Area、Base、Body、Button、Canvas、Event、Frame、Frameset、IFrame、Image、Link、Meta、Style、Form、Input Button、Input CheckBox、Input File、Input Hidden、Input Password、Input Radio、Input Reset、Input Submit、InputText、Option、Select、Textare、Table、TableCell、TableRow
(2)自定义对象
指由运行中的`JavaScript``代码创建的对象,兼容性问题需要由编写者注意。
创建自定义对象:
a、对象直接量;由名/值对组成的映射表,名和值之间用冒号分隔,名/值对之间用逗号分隔
var obj1 = {};
var obj2 = {x:0,y:0};
var obj3 = {name:"Mary", age:18};
b、使用 new 操作符后跟构造函数;创建系统对象,创建通用对象,创建自定义对象(自定义构造函数)
var obj1 = new Array;
var obj2 = new Date();
c、function 对象模板
二、JavaScript对象的两类属性
对象中的属性,根据是否自身的可分为自有属性和继承属性。
1.自有属性:也可叫实例属性;指对象自身的属性,也就是直接在对象中定义的属性。
2.继承属性:也可叫原型属性;指对象从原型中继承的属性,也就是在对象的原型对象中定义的属性。