了解Object类型
ECMAScript中对象的本质:一组数据和功能的集合。
创建一个新对象:
var o = new Object(); var o = new Object; //有效,但是不推荐
?
在ECMAScript中,如果不给构造函数传参数,可以省略后面的那一对圆括号。但是不推荐这样做。
仅仅创建Object的实例并没有什么用处,重要的是理解:
即在ECMAScript中,(就像Java中的java.lang.Object对象一样)Object类型是所有它的实例的基础。
方法或属性 | 作用 |
constructor | 保存着用于创建当前对象的函数 |
hasOwnProperty(propertyName) | 用于检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在。propertyName必须是字符串形式 |
isPrototypeOf(object) | 用于检查传入的对象是否是另一个对象的原型 |
propertyIsEnumerable(propertyName) | 用于检查给定的属性是否能够使用for-in语句来枚举 |
toLocaleString() | 返回对象的字符串表示,该字符串与执行环境的地区对应 |
toString() | 返回对象的字符串表示 |
valueOf() | 返回对象的字符串、数值或布尔值表示。通常与toString()方法的返回值相同。 |
在实际开发中,并不是说所有的JavaScript对象一定继承ECMAScript的Object对象。
原因如下:
从技术角度讲,ECMA-262中对象的行为不一定适用于JavaScript中的其他对象。浏览器环境中的对象,比如BOM和DOM中的对象,都属于宿主对象,因为它们是由宿主实现。提供和定义的。ECMA-262不负责定义宿主对象,因此宿主对象可能会也可能不会继承Object。
原文:http://mirroravatar.iteye.com/blog/2187853