ECMAScript引用类型精讲
引用类型通常叫做类(class),也就是说,遇到引用值时,所处理的就是对象。ECMAScript 实际上并没有传统意义上的类,只是通过定义对象来等同于其他语言中的类,鉴于大家对类甚是熟悉,姑且在文中还是以“类”来说明。 var ob = new Object(); 以上定义了一个Object对象的实例,这种语法和Java比较类似。当有参数的时候需要括号来引用,当不存在参数时,括号可以去掉。由于 ECMAScript语言比较松散,不管 是前面所属的基础语法,还是后面将提到的语法知识,我们都应该尽量按照一定的书写规范来约定自己的代码格式,而不应充分发挥语言松散的特点。 Object类 Object类和Java里的java.lang.Object类比较相似,它是ECMAScript中其他所有类的基类,它具有如下属性: constructor―建立对象的函数的一个引用,对于Object类而言,该引用指向本地Object()方法。 prototype―对象里prototype对象的一个引用值。 Object 类拥有的方法: hasOwnProperty(property)―判断property属性是否存在于对象中,property数据类型为string isPrototypeOf(object)― 判断一个对象是否是另一对象的 prototype propertyIsEnumerable(property)― 判断所给出的属性能否使用 for 语句列举出来 toString()―返回对象的原始类型string valueOf()―返回对象合适的原始值,对于多数类而言,返回的值和toString()相同 Object类的每一个属性和方法都被其他的类所重写 Boolean类 定义方法var ob = new Boolean(true); ob是Boolean原始数据类型的一个引用。在使用Boolean对象过程中,需要注意,所有的对象会自动转变为true,因此var ob1 = new Boolean(false); var ob2 = ob1 && true; 最后ob2的值是true,非false。一般情况下,使用Boolean原始数据类型可以避免这种情况。 Number类 定义方法var o = new Number(15); 获得原始数据的值var n = o.valueOf(); Number类有一些为数字类型的值特别设计的方法:
String类是一种复杂引用类型,这里仅列出一些常见的方法,其中不少都是模仿java.lang.String:
instanceof instanceof操作符和typeof作用类似,不同的是,instanceof需要明确指定对象是否属于某种特定类型。例如
|
- 上一篇:ECMAScript引用类型应用
- 下一篇:JavaScript运算符详解