JavaScript中Object类型的定义
原⽂地址:
ECMAScript中的对象其实就是⼀组数据和功能的集合。对象可以通过执⾏new操作符后跟要创建的对象类型的名称来创建。⽽创建Object类型的实例并为其添加属性和(或)⽅法,就可以创建⾃定义对象,如下所⽰:
var o = new Object();
这个语法与Java中创建对象的语法相似;但在ECMAScript中,如果不给构造函数传递参数,则可以省略后⾯的那⼀对圆括号。也就是说,在像前⾯这个⽰例⼀样不传递参数的情况下,完全可以省略那对圆括号(但这不是推荐的做法):
var o = new Object; // 有效,但不推荐省略圆括号
仅仅创建Object的实例并没有什么⽤处,但关键是要理解⼀个重要的思想:既在ECMAScript中,(就像Java中的java.lang.Object对象⼀样)Object类型是所有它的实例的基础。换句话说,Object类型所具有的任何属性和⽅法也同样存在于更具体的对象中。
Object的每个实例都具有下列属性和⽅法。
Constructor:保存着⽤于创建当前对象的函数。对于前⾯的例⼦⽽⾔,构造函数(constructor)就是Object( )。
hasOwnProperty(propertyName):⽤于检查给定的属性在当前对象实例中(⽽不是在实例的原型中)是否存在。其中,作为参数的属性名(propertyName)必须以字符串形式指定(例如:o.hasOwnProperty(“name”))。
json检查isPropertyOf(object):⽤于检查传⼊的对象是否是另⼀个对象的原型。
propertyIsEnumerable(propertyName):⽤于检查给定的属性是否能够使⽤for-in语句来枚举。与hasOwnProperty( )⽅法⼀样,作为参数的属性名必须以字符串形式指定。
toLocaleString( ):返回对象的字符串表⽰,该字符串与执⾏环境的地区对应。
toString( ):返回对象的字符串表⽰。
valueOf( ):返回对象的字符串、数值或布尔值表⽰。通常与toString( )⽅法的返回值相同。
由于在ECMAScript中Object是所有对象的基础,因此所有对象都具有这些基本的属性和⽅法。
从技术⾓度讲,ECMA-262中对象的⾏为不⼀定适⽤于JavaScript中的其他对象。浏览器环境中的对象,⽐如BOM和DOM中的对象,都属于宿主对象,因为它们是由宿主实现提供和定义的。ECMA-262不负责定义宿主对象,因此宿主对象可能会也可能不会继承Object。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。