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 相关文章推荐
关于flash遮盖div浮动层的解决方法
Jul 17 Javascript
js显示时间 js显示最后修改时间
Jan 02 Javascript
解析javascript 浏览器关闭事件
Jul 08 Javascript
JS中Date日期函数中的参数使用介绍
Jan 02 Javascript
JSF中confirm弹出框的用法示例介绍
Jan 07 Javascript
JavaScript通过事件代理高亮显示表格行的方法
May 27 Javascript
学习JavaScript设计模式(多态)
Nov 25 Javascript
jQuery实现订单提交页发送短信功能前端处理方法
Jul 04 Javascript
激动人心的 Angular HttpClient的源码解析
Jul 10 Javascript
详解node服务器中打开html文件的两种方法
Sep 18 Javascript
vue elementUI使用tabs与导航栏联动
Jun 21 Javascript
如何在Express4.x中愉快地使用async的方法
Nov 18 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
PHP集成FCK的函数代码
2008/09/27 PHP
PHP中使用sleep造成mysql读取失败的案例和解决方法
2014/08/21 PHP
php获取textarea的值并处理回车换行的方法
2014/10/20 PHP
PHP实现仿Google分页效果的分页函数
2015/07/29 PHP
php 基础函数
2017/02/10 PHP
Yii 框架控制器创建使用及控制器响应操作示例
2019/10/14 PHP
silverlight线程与基于事件驱动javascript引擎(实现轨迹回放功能)
2011/08/09 Javascript
基于jQuery的投票系统显示结果插件
2011/08/12 Javascript
JS输入用户名自动显示邮箱后缀列表的方法
2015/01/27 Javascript
简单的jQuery banner图片轮播实例代码
2016/03/04 Javascript
js CSS3实现卡牌旋转切换效果
2017/07/04 Javascript
zTree获取当前节点的下一级子节点数实例
2017/09/05 Javascript
Angularjs渲染的 using 指令的星级评分系统示例
2017/11/09 Javascript
超好用的jQuery分页插件jpaginate用法示例【附源码下载】
2018/12/06 jQuery
vue3.0中的双向数据绑定方法及优缺点
2019/08/01 Javascript
python网络编程实例简析
2014/09/26 Python
书单|人生苦短,你还不用python!
2017/12/29 Python
Python continue继续循环用法总结
2018/06/10 Python
使用Scrapy爬取动态数据
2018/10/21 Python
浅谈python3.x pool.map()方法的实质
2019/01/16 Python
Python批量生成幻影坦克图片实例代码
2019/06/04 Python
Python何时应该使用Lambda函数
2019/07/02 Python
使用Python实现文字转语音并生成wav文件的例子
2019/08/08 Python
Pyinstaller 打包发布经验总结
2020/06/02 Python
CSS3中background-clip和background-origin的区别示例介绍
2014/03/10 HTML / CSS
MyBag中文网:英国著名的时尚包袋电商零售网站
2020/07/31 全球购物
出国留学自荐信
2013/10/25 职场文书
青年安全生产示范岗事迹材料
2014/05/04 职场文书
社会发展项目建议书
2014/08/25 职场文书
销售活动策划方案
2014/08/26 职场文书
助残日活动总结
2014/08/27 职场文书
2014年小学数学工作总结
2014/12/12 职场文书
反腐倡廉心得体会2016
2016/01/13 职场文书
2016年社区六一儿童节活动总结
2016/04/06 职场文书
Vue中Object.assign清空数据报错的解决方案
2022/03/03 Vue.js
keepalived + nginx 实现高可用方案
2022/12/24 Servers