标签:
3.6-3.8
这三章主要介绍了JS的包装对象、不可变的原始值和可变的对象引用、JS中的类型转换。
包装对象主要指当原始值需要调用一些方法的时候(原始值本身是不能通过"."来调用的方法或者属性值的),JS会隐性的把原始值转换成一个临时的对象,通过这个临时的对象来实现通过原始值调用方法(这个方法是原始值所对应的包装对象的方法),这个临时的对象就成为包装对象。例如,
先定义一个字符串,并通过.length(),方法来获取字符串的长度:
1 var a ="hello"; 2 var b=a.length();
a作为一个字符串变量,并不是一个对象,所以他是不能通过"."的形式来调用length()方法的。但是在实际中,我们都是这样运用的。这就是因为这这个过程中JS使用了包装对象。当字符串a通过"."调用属性的时候(方法是一个属性值为函数的属性),JS会通过调用new String(a)来创建一个新的临时的对象,即包装对象,包装对象会继承字符串的所有方法,通过这个包装对象来.length()获取长度,并且返回给变量b,这个过程结束后b被赋值,包装对象会销毁,a并没有发生任何改变。
包装对象类似于JAVA中的对int的装箱后的Intiger对象。
除了字符串String(),数字和布尔值也有各自的Number()和Boolean()构造方法来调用。当然,JS除了在运算中会隐式的使用包装对象,也可以通过构造函数来显式的创建包装对象,如:
var a =‘hello‘; var A= new String(a);
标签:
原文地址:http://www.cnblogs.com/bigbearche/p/4759110.html