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 插件学习(一)
Aug 06 Javascript
通过隐藏iframe实现文件下载的js方法介绍
Feb 26 Javascript
常用的JavaScript模板引擎介绍
Feb 28 Javascript
在Docker快速部署Node.js应用的详细步骤
Sep 02 Javascript
canvas实现图像截取功能
Feb 06 Javascript
详解vue-cli与webpack结合如何处理静态资源
Sep 19 Javascript
jquery写出PC端轮播图实例
Jan 26 jQuery
BootStrap modal实现拖拽功能
Dec 01 Javascript
javascript导出csv文件(excel)的方法示例
Aug 25 Javascript
如何阻止小程序遮罩层下方图层滚动
Sep 05 Javascript
vue表单数据交互提交演示教程
Nov 13 Javascript
微信小程序批量上传图片到七牛(推荐)
Dec 19 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文件夹的创建与删除方法
2015/01/24 PHP
Yii获取当前url和域名的方法
2015/06/08 PHP
PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面)
2017/06/16 PHP
PHP实现关键字搜索后描红功能示例
2019/07/03 PHP
javascript动态加载二
2012/08/22 Javascript
如何使用jQuery来处理图片坏链具体实现步骤
2013/05/02 Javascript
JS实现按比例缩放图片的方法(附C#版代码)
2015/12/08 Javascript
AngularJS整合Springmvc、Spring、Mybatis搭建开发环境
2016/02/25 Javascript
精通JavaScript的this关键字
2020/05/28 Javascript
js正则表达式验证密码强度【推荐】
2017/03/03 Javascript
jquery中封装函数传递当前元素的方法示例
2017/05/05 jQuery
微信小程序使用navigateTo数据传递的实例
2017/09/26 Javascript
vue.js轮播图组件使用方法详解
2018/07/03 Javascript
JavaScript函数式编程(Functional Programming)高阶函数(Higher order functions)用法分析
2019/05/22 Javascript
ajax跨域访问遇到的问题及解决方案
2019/05/23 Javascript
layui form表单提交后实现自动刷新
2019/10/25 Javascript
[42:34]VP vs VG 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python 字符串操作方法大全
2014/03/11 Python
Django实现图片文字同时提交的方法
2015/05/26 Python
Python对多属性的重复数据去重实例
2018/04/18 Python
Python 运行.py文件和交互式运行代码的区别详解
2019/07/02 Python
python IDLE 背景以及字体大小的修改方法
2019/07/12 Python
Python3 执行Linux Bash命令的方法
2019/07/12 Python
对YOLOv3模型调用时候的python接口详解
2019/08/26 Python
基于CSS3的CSS 多栏(Multi-column)实现瀑布流源码分享
2014/06/11 HTML / CSS
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
ECCO爱步加拿大官网:北欧丹麦鞋履及皮具品牌
2017/07/08 全球购物
在线学习西班牙语、法语或其他语言:Babbel.com
2018/02/07 全球购物
英国门把手公司:Door Handle Company
2019/05/12 全球购物
Linux Interview Questions For software testers
2013/05/17 面试题
学生处主任岗位职责
2013/12/01 职场文书
2014初中数学教研组工作总结
2014/12/19 职场文书
检讨书范文300字
2015/01/28 职场文书
python解决12306登录验证码的实现
2021/04/18 Python
ORACLE查看当前账号的相关信息
2021/06/18 Oracle
Python制作一个随机抽奖小工具的实现
2021/07/07 Python