JS 三大对象
一、本地对象
- 与宿主无关,独立于宿主环境的 ECMAScript 实现提供的对象。
- 简单来说,本地对象就是 ECMA-262 定义的类(引用类型)。
- 这些引用类型在运行过程中需要通过 new 来创建所需的实例对象。
- 包含:
Object
、Array
、Date
、RegExp
、Function
、Boolean
、Number
、String
等。
二、内置对象
- 与宿主无关,独立于宿主环境的 ECMAScript 实现提供的对象。
- 在 ECMAScript 程序开始执行前就存在,本身就是实例化内置对象,开发者无需再去实例化。
- 内置对象是本地对象的子集。
- 包含:
Global
和Math
。 - ES5 中增添了
JSON
这个存在于全局的内置对象。
三、宿主对象
- 由 ECMAScript 实现的宿主环境提供的对象,包含两大类,一个是宿主提供,一个是自定义类对象。
- 所有非本地对象都属于宿主对象。
- 对于嵌入到网页中的 JS 来说,其宿主对象就是浏览器提供的对象,浏览器对象有很多,如
Window
和Document
等。 - 所有的
DOM
和BOM
对象都属于宿主对象。
本地对象也经常被叫做原生对象或内部对象,包含 Global 和 Math 在内的内置对象在《JavaScript 高级程序设计》里也被叫做单体内置对象,很多时候,干脆也会直接把本地对象和内置对象统称为“内置对象”,也就是说除了宿主对象,剩下的都是 ECMAScript 的内部的“内置”对象。