在 ECMAScript
中,所有对象并非同等创建的。
一般来说,可以创建并使用的对象有三种:本地对象、内置对象和宿主对象,对象还包含两类属性:自有属性、继承属性。
一、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.继承属性:也可叫原型属性;指对象从原型中继承的属性,也就是在对象的原型对象中定义的属性。