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 相关文章推荐
JavaScript入门教程(12) js对象化编程
Jan 31 Javascript
jquery使用ColorBox弹出图片组浏览层实例演示
Mar 14 Javascript
一个简单的瀑布流效果(主体形式自写)
May 27 Javascript
在百度知道团队中快速审批新成员的js脚本
Feb 02 Javascript
浅析JavaScript中的array数组类型系统
Jul 18 Javascript
Angular2使用Angular CLI快速搭建工程(一)
May 21 Javascript
简单实现JavaScript弹幕效果
Aug 27 Javascript
关于预加载InstantClick的问题解决方法
Sep 12 Javascript
javascript自定义事件功能与用法实例分析
Nov 08 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
Aug 07 Javascript
vue+webpack 更换主题N种方案优劣分析
Oct 28 Javascript
vue将data恢复到初始状态 && 重新渲染组件实例
Sep 04 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
本地计算机无法启动Apache故障处理
2014/08/08 PHP
Jquery插件编写简明教程
2014/03/25 Javascript
基于jQuery实现网页打印功能
2015/12/01 Javascript
Bootstrap表格和栅格分页实例详解
2016/05/20 Javascript
轻松掌握JavaScript单例模式
2016/08/25 Javascript
jQuery在ie6下无法设置select选中的解决方法详解
2016/09/20 Javascript
JS制作适用于手机和电脑的通知信息效果
2016/10/28 Javascript
JavaScript队列、优先队列与循环队列
2016/11/14 Javascript
详解如何将angular-ui的图片轮播组件封装成一个指令
2017/05/09 Javascript
基于Node的React图片上传组件实现实例代码
2017/05/10 Javascript
Vue中如何实现轮播图的示例代码
2017/07/27 Javascript
详解10分钟学会vue滚动行为
2017/09/21 Javascript
JavaScript实现职责链模式概述
2018/01/25 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
2018/04/26 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
2018/07/10 Javascript
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
Python将xml和xsl转换为html的方法
2015/03/10 Python
深入理解Python中各种方法的运作原理
2015/06/15 Python
Python中Scrapy爬虫图片处理详解
2017/11/29 Python
Python实现翻转数组功能示例
2018/01/12 Python
利用Python如何实现数据驱动的接口自动化测试
2018/05/11 Python
python查看数据类型的方法
2019/10/12 Python
在OpenCV里使用特征匹配和单映射变换的代码详解
2019/10/23 Python
OpenCV图片漫画效果的实现示例
2020/08/18 Python
python实现暗通道去雾算法的示例
2020/09/27 Python
简单聊聊H5的pushState与replaceState的用法
2018/04/03 HTML / CSS
Madewell美德威尔美国官网:美国休闲服饰品牌
2016/11/25 全球购物
JD Sports瑞典:英国领先的运动时尚商店
2018/01/28 全球购物
英国第一的滑雪服装和装备零售商:Snow+Rock
2020/02/01 全球购物
销售人员个人求职信
2013/09/26 职场文书
内勤岗位职责范本
2015/04/13 职场文书
课程设计感想范文
2015/08/11 职场文书
教师远程培训心得体会
2016/01/09 职场文书
导游词之宁夏贺兰山岩画
2019/11/08 职场文书
Python中的datetime包与time包包和模块详情
2022/02/28 Python
vue自定义右键菜单之全局实现
2022/04/09 Vue.js