javascript包装对象实例分析


Posted in Javascript onMarch 27, 2015

本文实例讲述了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 相关文章推荐
jquery.boxy插件的iframe扩展代码
Jul 02 Javascript
深入理解JavaScript 闭包究竟是什么
Apr 12 Javascript
JavaScript判断textarea值是否为空并给出相应提示
Sep 04 Javascript
html的DOM中Event对象onabort事件用法实例
Jan 21 Javascript
js调用百度地图及调用百度地图的搜索功能
Sep 07 Javascript
JS常用字符串方法(推荐)
Jan 15 Javascript
深入浅出 jQuery中的事件机制
Aug 23 Javascript
Node.js调试技术总结分享
Mar 12 Javascript
微信小程序 实现动态显示和隐藏某个控件
Apr 27 Javascript
Node.js中你不可不精的Stream(流)
Jun 08 Javascript
jQuery实现table表格信息的展开和缩小功能示例
Jul 21 jQuery
用javascript实现倒计时效果
Feb 09 Javascript
javascript操作select元素实例分析
Mar 27 #Javascript
jquery使用slideDown实现模块缓慢拉出效果的方法
Mar 27 #Javascript
jQuery使用slideUp方法实现控制元素缓慢收起
Mar 27 #Javascript
jquery使用animate方法实现控制元素移动
Mar 27 #Javascript
jQuery获取标签文本内容和html内容的方法
Mar 27 #Javascript
Node.js 去掉种子(torrent)文件里的邪恶信息
Mar 27 #Javascript
jQuery使用attr()方法同时设置多个属性值用法实例
Mar 26 #Javascript
You might like
饭制《星际争霸》Mod:优化游戏机制 增加新单位
2017/07/02 星际争霸
php 从指定数字中获取随机组合的简单方法(推荐)
2017/04/05 PHP
农历与西历对照
2006/09/06 Javascript
javascript 全角转换实现代码
2009/07/17 Javascript
Javascript load Page,load css,load js实现代码
2010/03/31 Javascript
JS控件ASP.NET的treeview控件全选或者取消(示例代码)
2013/12/16 Javascript
深入探寻seajs的模块化与加载方式
2015/04/14 Javascript
javascript十六进制及二进制转化的方法
2015/05/06 Javascript
js实现非常简单的焦点图切换特效实例
2015/05/07 Javascript
js简单实现表单中点击按钮动态增加输入框数量的方法
2015/08/18 Javascript
js移动焦点到最后位置的简单方法
2016/11/25 Javascript
js原生之焦点图转换加定时器实例
2016/12/12 Javascript
微信小程序技巧之show内容展示,上传文件编码问题
2017/01/23 Javascript
一次记住JavaScript的6个正则表达式方法
2018/02/22 Javascript
基于Vuex无法观察到值变化的解决方法
2018/03/01 Javascript
JS判断字符串是否为整数的方法--简单的正则判断
2018/07/23 Javascript
javascript验证form表单数据的案例详解
2019/03/25 Javascript
vue项目初始化到登录login页面的示例
2019/10/31 Javascript
[48:38]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs Secret
2018/03/31 DOTA
python多重继承实例
2014/10/11 Python
Python的Django框架中自定义模版标签的示例
2015/07/20 Python
fastcgi文件读取漏洞之python扫描脚本
2017/04/23 Python
使用python实现个性化词云的方法
2017/06/16 Python
使用Python抓取豆瓣影评数据的方法
2018/10/17 Python
Python发展史及网络爬虫
2019/06/19 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
2020/03/06 Python
keras 多gpu并行运行案例
2020/06/10 Python
雅诗兰黛加拿大官网:Estee Lauder加拿大
2019/07/31 全球购物
关于Assembly命名空间的三个面试题
2015/07/23 面试题
单位未婚证明范本
2014/01/18 职场文书
党课知识竞赛主持词
2014/04/01 职场文书
干部竞争上岗演讲稿
2014/09/11 职场文书
2014法制宣传日活动总结范文
2014/11/01 职场文书
2014年医院党建工作总结
2014/12/20 职场文书
新生开学寄语大全
2015/05/28 职场文书
Python开发五子棋小游戏
2022/04/28 Python