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带搜索框的下拉菜单
May 06 Javascript
javascript相关事件的几个概念
May 21 Javascript
js控制文本框输入的字符类型方法汇总
Jun 19 Javascript
JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)
Sep 23 Javascript
浅谈react.js 之 批量添加与删除功能
Apr 17 Javascript
javascript实现二叉树遍历的代码
Jun 08 Javascript
vue Render中slots的使用的实例代码
Jul 19 Javascript
[原创]微信小程序获取网络类型的方法示例
Mar 01 Javascript
使用vue-router切换页面时,获取上一页url以及当前页面url的方法
May 06 Javascript
jsonp格式前端发送和后台接受写法的代码详解
Nov 07 Javascript
JS继承实现方法及优缺点详解
Sep 02 Javascript
手写实现JS中的new
Nov 07 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
Thinkphp中的curd应用实用要点
2015/01/04 PHP
WordPress中设置Post Type自定义文章类型的实例教程
2016/05/10 PHP
php htmlentities()函数的定义和用法
2016/05/13 PHP
Zend Framework入门教程之Zend_View组件用法示例
2016/12/09 PHP
THINKPHP-Apache服务器中使用Alias虚拟目录URL重写 隐藏index.php
2021/03/09 PHP
JQuery将文本转化成JSON对象需要注意的问题
2011/05/09 Javascript
jQuery中判断一个元素是否为另一个元素的子元素(或者其本身)
2012/03/21 Javascript
基于jQuery中对数组进行操作的方法
2013/04/16 Javascript
jQuery控制TR显示隐藏的几种方法
2014/06/18 Javascript
JavaScript中判断变量是数组、函数或是对象类型的方法
2015/02/25 Javascript
js面向对象之常见创建对象的几种方式(工厂模式、构造函数模式、原型模式)
2015/11/09 Javascript
javascript实现简易计算器的代码
2016/05/31 Javascript
详解Javascript中的原型OOP
2016/10/12 Javascript
网络传输协议(http协议)
2016/11/18 Javascript
浅谈jquery的html方法里包含特殊字符的处理
2016/11/30 Javascript
VUE JS 使用组件实现双向绑定的示例代码
2017/01/10 Javascript
vue的基本用法与常见指令
2017/08/15 Javascript
使用 Vue 绑定单个或多个 Class 名的实例代码
2018/01/08 Javascript
基于纯JS实现多张图片的懒加载Lazy过程解析
2019/10/14 Javascript
node.js中 redis 的安装和基本操作示例
2020/02/10 Javascript
jQuery实现倒计时功能完整示例
2020/06/01 jQuery
python通过pil模块获得图片exif信息的方法
2015/03/16 Python
利用Python实现图书超期提醒
2016/08/02 Python
Python使用pylab库实现画线功能的方法详解
2017/06/08 Python
Python处理时间日期坐标轴过程详解
2019/06/25 Python
python flask框架实现重定向功能示例
2019/07/02 Python
django 单表操作实例详解
2019/07/30 Python
python“静态”变量、实例变量与本地变量的声明示例
2020/11/13 Python
DJI大疆德国官方商城:大疆无人机
2018/09/01 全球购物
德国50岁以上交友网站:Lebensfreunde
2020/03/18 全球购物
金融学专业大学生职业生涯规划
2014/03/07 职场文书
五年级学生评语
2014/04/22 职场文书
2014领导班子“四风问题”对照检查材料思想汇报(执法局)
2014/09/21 职场文书
群众路线个人剖析材料及整改措施
2014/11/04 职场文书
学困生帮扶工作总结
2015/08/13 职场文书
经典《舰娘》游改全新动画预告 预定11月开播
2022/04/01 日漫