JS中的基本包装类型

想一下:为何String类型的值能够调用某些方法和访问某些属性呢?

在基本数据类型中有3个特殊的存在:String Number Boolean

这三个基本类型都有本身对应的包装对象。包装对象,其实就是对象,有相应的属性和方法。调用方法的过程,是在后台偷偷发生的,因此咱们称做为基本包装类型。

//咱们日常写程序的过程:
var str = 'hello'; //string 基本类型
var s2 = str.charAt(0); //在执行到这一句的时候 后台会自动完成如下动做 :
//后台偷偷发生的
( 
 var _str = new String('hello'); // 1.建立String类型的一个实例
 var s2 = _str.chaAt(0); // 2 在实例上调用指定的方法,而且返回结给s2
 _str = null;  //    3.销毁这个实例
 ) 
alert(s2);//h 
alert(str);//hello

在看一个例子

var str = 'string';
str.pro = 'hello';
console.log(str.pro);

当执行 str.pro = 'hello' 时,实际上内部建立了一个基本包装类型的实例,而后给这个实例的 pro 属性赋值为 hello,实例建立后立刻销毁了,当下一次试图获取 str.pro 的值时,又会建立一个基本包装类型的实例,显然新建立的实例时没有 pro 属性的,为 undefined,因此最后输出 undefined 。

相关文章
相关标签/搜索