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 相关文章推荐
Js动态创建div
Sep 25 Javascript
3Z版基于jquery的图片复选框(asp.net+jquery)
Apr 12 Javascript
封装的原生javascript弹出层代码
Sep 24 Javascript
JS短路原理的应用示例 精简代码的途径
Dec 13 Javascript
jquery库文件略庞大用纯js替换jquery的方法
Aug 12 Javascript
iframe如何动态创建及释放其所占内存
Sep 03 Javascript
js实现页面跳转的五种方法推荐
Mar 10 Javascript
jQuery中text() val()和html()的区别实例详解
Jun 28 Javascript
基于Vue2的独立构建与运行时构建的差别(详解)
Dec 06 Javascript
微信小程序实现点赞、取消点赞功能
Nov 02 Javascript
Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定
Apr 29 Javascript
微信小程序可滑动月日历组件使用详解
Oct 21 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如何得到当前页和上一页的地址?
2006/11/27 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
2015/11/27 PHP
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
2016/02/14 PHP
PHP内置加密函数详解
2016/11/20 PHP
jquery.form.js实现将form提交转为ajax方式提交的方法
2015/04/07 Javascript
JavaScript中最常见的三个面试题解析
2017/03/04 Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/27 Javascript
移动端手指放大缩小插件与js源码
2017/05/22 Javascript
浅谈vue中使用图片懒加载vue-lazyload插件详细指南
2017/10/23 Javascript
python获得一个月有多少天的方法
2015/06/04 Python
在Python的Django框架中创建语言文件
2015/07/27 Python
使用Python的Tornado框架实现一个Web端图书展示页面
2016/07/11 Python
Python字符串处理实现单词反转
2017/06/14 Python
python utc datetime转换为时间戳的方法
2019/01/15 Python
简单了解Python matplotlib线的属性
2019/06/29 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
2019/08/23 Python
python操作ini类型配置文件的实例教程
2020/10/30 Python
python 实现简易的记事本
2020/11/30 Python
详解Python openpyxl库的基本应用
2021/02/26 Python
CSS3转换功能transform主要属性值分析及实现分享
2012/05/06 HTML / CSS
VIVOBAREFOOT赤脚鞋:让您的脚做自然的事情
2017/06/01 全球购物
西班牙最大的在线滑板和街头服饰商店:Fillow.net
2019/04/15 全球购物
美津浓巴西官方网站:Mizuno巴西
2019/07/24 全球购物
计算机专业个人求职信范例
2013/09/23 职场文书
考试作弊检讨书大全
2014/02/18 职场文书
代理协议书范本
2014/04/22 职场文书
上海世博会口号
2014/06/19 职场文书
2014年城管工作总结
2014/11/20 职场文书
健康证明
2015/06/19 职场文书
公司员工管理制度
2015/08/04 职场文书
2016年大学迎新工作总结
2015/10/14 职场文书
盘点2020年适合农村地区创业的项目
2019/10/16 职场文书
mysql 带多个条件的查询方式
2021/06/05 MySQL
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
2022/05/25 SQL Server
python实现双向链表原理
2022/05/25 Python
css之clearfix的用法深入理解(必看篇)
2023/05/21 HTML / CSS