javascript包装对象实例分析
作者:bea
本文实例讲述了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程序设计有所帮助。
猜你喜欢
您可能感兴趣的文章:
- jquery使用hide方法隐藏指定id的元素
- jQuery使用hide方法隐藏指定元素class样式用法实例
- jQuery使用hide方法隐藏元素自身用法实例
- javascript实现控制浏览器全屏
- 原生JavaScript编写俄罗斯方块
- 原生js结合html5制作简易的双色子游戏
- 原生js结合html5制作小飞龙的简易跳球
- PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
- 浅谈类似于(function(){}).call()的js语句
- jquery实现右键菜单插件
- 纯JavaScript实现的兼容各浏览器的添加和移除事件封装
- jquery表单验证插件(jquery.validate.js)的3种使用方式
- JQuery调用绑定click事件的3种写法
- 对Web开发中前端框架与前端类库的一些思考
- Javascript优化技巧之短路表达式详细介绍
- 学习JavaScript编程语言的8张思维导图分享
- JavaScript中的函数声明和函数表达式区别浅析
- jQuery使用fadein方法实现渐出效果实例
- jQuery使用fadeout实现元素渐隐效果的方法