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生成的验证码的实现与技术分析
Sep 17 Javascript
jQuery实现的导航条切换可显示隐藏
Oct 22 Javascript
jQuery对JSON数据进行排序输出的方法
Jun 24 Javascript
第一章之初识Bootstrap
Apr 25 Javascript
特殊日期提示功能的实现方法
Jun 16 Javascript
JS字符串统计操作示例【遍历,截取,输出,计算】
Mar 27 Javascript
JS动态修改网页body的背景色实例代码
Oct 07 Javascript
详解如何实现一个简单的 vuex
Feb 10 Javascript
从零开始实现Vue简单的Toast插件
Dec 03 Javascript
基于js Canvas实现二次贝塞尔曲线
Dec 25 Javascript
vue-dplayer 视频播放器实例代码
Nov 08 Javascript
vuex存取值和映射函数使用说明
Jul 24 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 空格,换行,跳格使用说明
2009/12/18 PHP
简单的php文件上传(实例)
2013/10/27 PHP
php发送html格式文本邮件的方法
2015/06/10 PHP
PHP magento后台无法登录问题解决方法
2016/11/24 PHP
PHP使用PDO抽象层获取查询结果的方法示例
2018/05/10 PHP
php 截取中英文混合字符串的方法
2018/05/31 PHP
php实现算术验证码功能
2018/12/05 PHP
详解vue-cil和webpack中本地静态图片的路径问题解决方案
2017/09/27 Javascript
Vue 仿QQ左滑删除组件功能
2018/03/12 Javascript
JavaScript如何对图片进行黑白化
2018/04/10 Javascript
vue.js+element-ui动态配置菜单的实例
2018/09/07 Javascript
Vue结合后台导入导出Excel问题详解
2019/02/19 Javascript
如何在JavaScript中优雅的提取循环内数据详解
2019/03/04 Javascript
微信小程序实现搜索历史功能
2020/03/26 Javascript
vue.js+elementUI实现点击左右箭头切换头像功能(类似轮播图效果)
2019/09/05 Javascript
Python算法之栈(stack)的实现
2014/08/18 Python
python获取mp3文件信息的方法
2015/06/15 Python
关于Python中空格字符串处理的技巧总结
2017/08/10 Python
利用Python+阿里云实现DDNS动态域名解析的方法
2019/04/01 Python
树莓派采用socket方式文件传输(python)
2019/06/22 Python
python覆盖写入,追加写入的实例
2019/06/26 Python
django搭建项目配置环境和创建表过程详解
2019/07/22 Python
Python解析命令行读取参数之argparse模块
2019/07/26 Python
pandas 强制类型转换 df.astype实例
2020/04/09 Python
Python PyQt5运行程序把输出信息展示到GUI图形界面上
2020/04/27 Python
PyQt5-QDateEdit的简单使用操作
2020/07/12 Python
美国护肤咨询及美容产品电商:Askderm
2017/02/24 全球购物
澳大利亚新奇小玩意网站:Yellow Octopus
2017/12/28 全球购物
世界上最具创新性的增强型知名运动品牌:Proviz
2018/04/03 全球购物
大学生英语演讲稿
2014/04/24 职场文书
群众路线对照检查剖析材料
2014/10/09 职场文书
大学生见习报告总结
2014/11/04 职场文书
关爱留守儿童捐款倡议书
2015/04/27 职场文书
酒店员工手册范本
2015/05/14 职场文书
2015年底工作总结范文
2015/05/15 职场文书
怎样写好工作计划
2019/04/10 职场文书