Object类型
ECMAScript中的对象是一组数据和功能的集合。
对象可以通过执行new操作符后跟要创建的对象类型的名称来创建。
创建Object类型的实例并为其添加属性和(或)方法,就可以创建自定义对象,如下所示:
var o = new Object();
这个语法与Java中创建对象相似,但ECMAScript不给构造函数添加参数就可以省略括号。
var o = new Object;//有效,但是不推荐
仅仅创建Object实例并没有什么用,关键思想是:
即在ECMAScript中,Object类型是所有它的实例的基础。换句话说,Object类型所具有的任何属性和方法也同样存在于更具体的对象中。
Object对象有如下属性和方法:
- constructor:保存着用于创建当前对象 的函数,对于前面的例子而言,构造函数就是Object对象。
- hasOwnProperty(propertyName):用于检查给定的属性在当前对象的实例中(而不是实例的原型中),是否存在。其中:propertyName参数的属性名必须以字符串的形式出现。
- isPrototypeOf(object):用于检查传入的对象是否是当前对象的原型。
- propertyIsEnumerable(propertyName):用于检查给定的属性是否能使用for-in语句来枚举。与hasOwnProperty(propertyName)一样,参数必须以字符串的形式。
- toLocalString():返回对象的字符串表示,该字符串与执行环境的地区对应。
- toString():返回对象的字符串表示。
- valueOf():返回对象的字符串、数值、布尔值表示。通常与toString()方法的返回值相同。
由于在ECMAScript中Object是所有对象的基础,因此所有对象都具有这些基本的属性和方法。
您知道吗?
从技术角度讲:
ECMA-262中对象的行为不一定适用于JavaScript中的其他对象。
浏览器环境中的对象,比如BOM和DOM中的对象,都属于宿主对象,
因为它们是宿主提供和定义的。
ECMA-262不负责定义宿主对象,因此宿主对象可能会也可能不会继承Object。