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仿Excel表格编辑功能的实现代码
May 01 Javascript
JS中完美兼容各大浏览器的scrolltop方法
Apr 17 Javascript
JavaScript中的setMilliseconds()方法使用详解
Jun 11 Javascript
jQuery实现仿QQ在线客服效果的滚动层代码
Oct 15 Javascript
jQuery实现分隔条左右拖动功能
Nov 21 Javascript
完美解决jQuery 鼠标快速滑过后,会执行多次滑出的问题
Dec 08 Javascript
javascript内存分配原理实例分析
Apr 10 Javascript
Angular4实现动态添加删除表单输入框功能
Aug 11 Javascript
原生JS实现日历组件的示例代码
Sep 22 Javascript
详解Angular5 路由传参的3种方法
Apr 28 Javascript
微信小程序在地图选择地址并返回经纬度简单示例
Dec 03 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
Apr 06 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
模拟SQLSERVER的两个函数:dateadd(),datediff()
2006/10/09 PHP
file_get_contents("php://input", "r")实例介绍
2013/07/01 PHP
PHP实现把数字ID转字母ID
2013/08/12 PHP
PHP采集类snoopy详细介绍(snoopy使用教程)
2014/06/19 PHP
php防止伪造的数据从URL提交方法
2014/06/27 PHP
thinkphp中memcache的用法实例
2014/11/29 PHP
PHP实现的简单网络硬盘
2015/07/29 PHP
php命令行(cli)模式下报require 加载路径错误的解决方法
2015/11/23 PHP
php封装好的人民币数值转中文大写类
2015/12/20 PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
2016/10/17 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
浅谈jQuery中的事件
2015/03/23 Javascript
浅析JS操作DOM的一些常用方法
2016/05/13 Javascript
深入理解JS DOM事件机制
2016/08/06 Javascript
深入理解bootstrap框架之入门准备
2016/10/09 Javascript
Jquery Easyui搜索框组件SearchBox使用详解(19)
2016/12/17 Javascript
简单谈谈原生js的math对象
2017/06/27 Javascript
Three.js利用顶点绘制立方体的方法详解
2017/09/27 Javascript
深入了解javascript 数组的sort方法
2018/06/01 Javascript
详解bootstrap-fileinput文件上传控件的亲身实践
2019/03/21 Javascript
vue增加强缓存和版本号的实现方法
2019/05/01 Javascript
JavaScript 中的六种循环方法
2021/01/06 Javascript
Python显示进度条的方法
2014/09/20 Python
Python实现监控程序执行时间并将其写入日志的方法
2015/06/30 Python
在python中bool函数的取值方法
2018/11/01 Python
pycharm设置默认的UTF-8编码模式的方法详解
2020/06/01 Python
HTML5里的placeholder属性使用实例和美化显示效果的方法
2014/04/23 HTML / CSS
Html5页面二次分享的实现
2018/07/30 HTML / CSS
泰国第一在线超市:Tops
2021/02/13 全球购物
正隆泰信息技术有限公司上机题
2012/06/14 面试题
《燕子》教学反思
2014/02/18 职场文书
产假请假条
2014/04/10 职场文书
四风自我剖析材料
2014/09/30 职场文书
社会实践活动总结格式
2015/05/11 职场文书
给校长的建议书作文400字
2015/09/14 职场文书
详解CSS伪元素的妙用单标签之美
2021/05/25 HTML / CSS