javascript对于值类型数据的对象包装简单介绍

快乐打工仔 分类:实例代码

本本章节简单介绍一下javascript对于值类型数据(简单类型数据)的封装,希望能够给需要的朋友带来一定的帮助。

如果我们要使用一个字符串,通常会使用如下方式声明,代码如下:

var str="pipipi.net";

很明显,上面是一个值类型数据,但是它可以调用方法对数据进行操作,代码如下:

var str="pipipi.net";
console.log(str.toUpperCase());

上面的代码可以正常运行。按照正常的理论,只有对象才可以调用方法,为什么一个值类型数据也可以呢。

这是因为javascript会对值类型数据进行隐式的包装操作,过程可以理解为如下:

var str=new String("pipipi.net")
console.log(str.toUpperCase());

但是对于str的包装只是暂时的,当调用完成之后,数据又会立马还原为值类型,可以理解为进行了如下操作:

var str=new String("pipipi.net")
consoloe.log(str.toUpperCase());
str="pipipi.net";

再来看一段代码实例来证明一下上面的论断:

var str="pipipi.net";
str.antzone="犀牛前端部落";
consoloe.log(str.antzone);

上面的代码并不能输出期望的antzone属性值,这是因为当str创建antzone属性的时候会包装成一个对象。

赋值完毕以后,里面又会通过类似str="pipipi.net"方式成为一个值类型,当然也就没有antzone属性了。

对于其他的值类型数据也是如此,这里就不多介绍了。

回复

我来回复
  • 暂无回复内容