在 ecmascript 中,所有对象并非同等创建的。
一般来说,可以创建并使用的对象有三种:本地对象、内置对象和宿主对象。
ecma-262 把本地对象(native object)定义为“独立于宿主环境的 ecmascript 实现提供的对象”。简单来说,本地对象就是 ecma-262 定义的类(引用类型)。它们包括:
javascript 高级教程:ecmascript 引用类型
javascript 高级教程:ecmascript function 类
javascript 参考手册:array 对象
javascript 参考手册:boolean 对象
javascript 参考手册:date 对象
javascript 参考手册:number 对象
javascript 参考手册:string 对象
javascript 参考手册:regexp 对象
ecma-262 把内置对象(built-in object)定义为“由 ecmascript 实现提供的、独立于宿主环境的所有对象,在 ecmascript 程序开始执行时出现”。这意味着开发者不必明确实例化内置对象,它已被实例化了。ecma-262 只定义了两个内置对象,即 global 和 math (它们也是本地对象,根据定义,每个内置对象都是本地对象)。
javascript 参考手册:global 对象
javascript 参考手册:math 对象
所有非本地对象都是宿主对象(host object),即由 ecmascript 实现的宿主环境提供的对象。
所有 bom 和 dom 对象都是宿主对象。