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 相关文章推荐
checkbox 多选框 联动实现代码
Oct 22 Javascript
火狐浏览器(firefox)下获得Event对象以及keyCode
Nov 13 Javascript
jQuery获取Select选择的Text和Value(详细汇总)
Jan 25 Javascript
基于jquery扩展漂亮的CheckBox(自己编写)
Nov 19 Javascript
Node.js中使用计时器定时执行函数详解
Aug 15 Javascript
JavaScript中的object转换函数toString()与valueOf()介绍
Dec 31 Javascript
JavaScript实现简洁的俄罗斯方块完整实例
Mar 01 Javascript
使用微信小程序开发前端【快速入门】
Dec 05 Javascript
JS跨域请求外部服务器的资源
Feb 06 Javascript
JS实现颜色的10进制转化成rgba格式的方法
Sep 04 Javascript
微信小程序点击view动态添加样式过程解析
Jan 21 Javascript
JS实现鼠标移动拖尾
Dec 27 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 连接mysql连接被重置的解决方法
2011/02/15 PHP
PHP截取指定图片大小的方法
2014/12/10 PHP
Thinkphp3.2.3分页使用实例解析
2016/07/28 PHP
thinkPHP引入类的方法详解
2016/12/08 PHP
PHP 中使用explode()函数切割字符串为数组的示例
2017/05/06 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
2019/01/16 PHP
javascript 限制输入和粘贴(IE,firefox测试通过)
2008/11/14 Javascript
基于JQuery实现鼠标点击文本框显示隐藏提示文本
2012/02/23 Javascript
你需要知道的10个最佳javascript开发实践小结
2012/04/15 Javascript
js返回上一页并刷新代码整理
2012/12/21 Javascript
js charAt的使用示例
2014/02/18 Javascript
jQuery选择id属性带有点符号元素的方法
2015/03/17 Javascript
基于JS实现移动端访问PC端页面时跳转到对应的移动端网页
2020/12/24 Javascript
基于JavaScript实现屏幕滚动效果
2017/01/18 Javascript
Vue2组件tree实现无限级树形菜单
2017/03/29 Javascript
微信小程序商城项目之侧栏分类效果(1)
2017/04/17 Javascript
vue.js分页中单击页码更换页面内容的方法(配合spring springmvc)
2018/02/10 Javascript
angular6.x中ngTemplateOutlet指令的使用示例
2018/08/09 Javascript
antd Upload 文件上传的示例代码
2018/12/14 Javascript
点击按钮弹出模态框的一系列操作代码实例
2019/03/29 Javascript
Vue 中使用富文本编译器wangEditor3的方法
2019/09/26 Javascript
谈谈JavaScript中的垃圾回收机制
2020/09/17 Javascript
Vue实现穿梭框效果
2020/09/30 Javascript
原生js 实现表单验证功能
2021/02/08 Javascript
[49:35]2018DOTA2亚洲邀请赛3月30日 小组赛A组 KG VS TNC
2018/03/31 DOTA
Python3实现的画图及加载图片动画效果示例
2018/01/19 Python
Python3中exp()函数用法分析
2019/02/19 Python
Numpy之reshape()使用详解
2019/12/26 Python
Python如何使用字符打印照片
2020/01/03 Python
一篇文章搞懂python的转义字符及用法
2020/09/03 Python
Sunglasses Shop英国:欧洲领先的太阳镜在线供应商之一
2018/09/19 全球购物
ShellScript面试题一则-ShellScript编程
2014/03/05 面试题
2015年七夕情人节感言
2015/08/03 职场文书
2016年少先队活动总结
2016/04/06 职场文书
python实现剪贴板的操作
2021/07/01 Python
MySQL中一条SQL查询语句是如何执行的
2022/04/08 MySQL