JavaScript

javascript包装对象的用法

时间:2024-10-30 20:57:05 JavaScript 我要投稿
  • 相关推荐

javascript包装对象的用法

  js对象是一种复合值:它是属性或已命名值得集合。

  参考以下代码:

  var s = "hello world";var len = s.length;

  在该例子中,s是字符串,而字符串不是对象,但为何会有属性呢?其实只要引用了字符串s的属性,js就会将字符串通过调用new String(s)的方式转换为对象,该对象继承了字符串的方法,并被用来处理属性的引用;一旦属性引用结束,这个新创建的对象就会被销毁(在实现上并不一定创建或销毁这个临时对象,但整个过程看来是这样)。

  同字符串一样,数字和布尔值也具有各自的方法:通过Number()单核Boolean()构造函数创建临时对象,这些方法的调用都是来自于这个临时对象;然而null和undefined没有包装对象:访问他们的属性会造成类型错误。

  比如以下代码:

  var s0 = "hello world";s0.len = 100;var t = s.len; //t的值将为undefined

  因为第2行创建临时对象后,立即将其销毁;第三行通过原始的字符串值创建一个新字符串对象,尝试读取其len属性,自然不存在。这段代码说明在读取字符串、数字和布尔值的属性值或方法时,表现的像对象一样。但如果你试图给其属性赋值,则会忽略这个操作:修改只是发生在临时对象上,而这个临时对象并未继续保留下来。

  存取字符串、数字或布尔值的属性时临时创建临时对象称为包装对象。

  我们可以显示建立一个字符串对象然后增添它的属性,自然该属性会一直保留下来:

  var str = "hello world";var objs = new String(str);objs.len = 100;var t = objs.len; //t将被赋值为100

  js会在必要时将包装对象转换为原始值因此显示创建的对象和其对应的原始值常常但不总是表现的一样。==运算符将原始值和其包装对象视为相等;但===全等运算符将他们视为不等;另外通过typeof运算符可以看到原始值和包装对象的不同。

  希望本文所述对大家的javascript程序设计有所帮助。

【javascript包装对象的用法】相关文章:

如何调试javascript脚本呢07-19

javascript跨域访问的方法07-19

all用法要点07-24

again用法详解08-25

英语祈使句的结构及用法06-17

英语介词to的用法汇总02-01

英语方位名词的用法07-19

俄语动词“体”的用法02-04

德语阳性名词的用法07-16

日语存在句的用法12-18