javascript 对象分类javascript
ECMAScript是一个标准或者规范它定义了一种语言的下面内容: java
文档对象模型(DOM):描述了处理网页内容的方法和接口 (参考内容:http://developer.51cto.com/art/201009/224979.htm)
DOM自己也是一种标准或者规范,它定义了一种以面向对象方式描述的文档模型,并以节点层级来具体展示。
使用这种方式以及DOM定义的一些接口,可以使开发者对文档的内容和结构具备至关好的控制能力。
DOM 在被 Web 浏览器开始实现以前就已是一种标准了。
早期网景公司和微软公司支持不一样形态的DHTML(动态HTML:不经过网页刷新便可更新文档结构,其实就是使用各自的DOM接口来操做HTML),
为了可以作到浏览器兼容性,W3C制订了一个DOM规范(如今已经发展到DOM Level 3),
其本质是创建网页与Script或程序语言沟通的桥梁,并保持浏览器兼容性。
DOM level 3也是各浏览器厂商各自实现的,因此会有兼容性问题。浏览器
从名字上能够看出,它是用来操做浏览器的一个模型,利用javascript经过BOM定义的接口和方法来与浏览器交互。
须要注意的是BOM不是一个标准,不一样浏览器厂商有不一样的BOM接口及实现(不兼容是必然的!)。
为数很少的共同点是各浏览器厂商有一个共同的窗口对象和导航对象,可是这些对象的属性和方法,浏览器厂商也能够任意扩展。
BOM 主要处理浏览器窗口和框架,不过一般浏览器特定的 JavaScript 扩展都被看作 BOM 的一部分。这些扩展包括:cookie
ECMA-262 把本地对象(native object)定义为“独立于宿主环境的 ECMAScript 实现提供的对象”。简单来讲,本地对象就是 ECMA-262 定义的类(引用类型)。它们包括: 框架
ECMA-262 把内置对象(built-in object)定义为“由 ECMAScript 实现提供的、独立于宿主环境的全部对象,在 ECMAScript 程序开始执行时出现”。
这意味着开发者没必要明确实例化内置对象,它已被实例化了。
ECMA-262 只定义了两个内置对象,即 Global 和 Math (它们也是本地对象,根据定义,每一个内置对象都是本地对象)。ui
宿主对象
全部非本地对象都是宿主对象(host object),即由 ECMAScript 实现的宿主环境提供的对象。
全部 BOM(Window(同window)之类的) 和 DOM(document之类的) 对象都是宿主对象。.net