JavaScript中的Primitive对象封装介绍


Posted in Javascript onDecember 31, 2014

JavaScript中,string、number、boolean均为primitive基本类型,也即字符串、数值、布尔值并不是以对象的形式而存在的。不过,由于需要对这三种primitive类型值进行操作,因此JavaScript会自动封装这三种类型的值,使其作为对象而拥有属性与方法。以string为例,这种封装过程如下:

1.当JavaScript遇到对string值进行属性访问或者方法调用时,会调用new String(字符串值)自动将该string封装成一个String对象。
2.JavaScript会访问这个新创建的对象的属性或者方法,并返回相应的结果。
3.属性访问或者方法调用结束后,JavaScript将立即销毁这个新创建的对象。

以下面的代码为例,对JavaScript自动创建的String对象进行属性写入操作没有任何意义,因为这个创建出来的对象在写入语句结束后就不复存在了:

var s = "test";

s.length = 9;

console.log(s.length);//still 4

s.newVariable = 9;

console.log(s.newVariable);//undefined

console.log(s === "test");//true

值得注意的是,上述代码中的s变量所表示的永远是primitive的字符串,JavaScript所自动创建的字符串对象存在于执行s.length或者s.newVariable操作的过程中。这可以从以上实验的最后一行代码中得到验证。

除了对Primitive值进行自动封装,开发人员也可以选择手动进行相应的过程。与自动封装不同的是,手动封装所得到的对象并不会被立即销毁,因此针对手动封装的对象所采取的属性写入操作是有意义的:

var t = new String("test");

t.length = 9;

console.log(t.length);//still 4, as length attribute is read only

t.newVariable = 9;

console.log(t.newVariable);//9
console.log(t == "test");//true

console.log(t === "test");//false
Javascript 相关文章推荐
JavaScript 学习历程和心得分享
Dec 12 Javascript
getElementByIdx_x js自定义getElementById函数
Jan 24 Javascript
js判断是否为ie的方法小结
Jan 13 Javascript
js中一维数组和二位数组中的几个问题示例说明
Jul 17 Javascript
js判断浏览器是否支持html5
Aug 17 Javascript
jQuery中ajax的post()方法用法实例
Dec 26 Javascript
js中class的点击事件没有效果的解决方法
Oct 13 Javascript
js 打开新页面在屏幕中间的实现方法
Nov 02 Javascript
用jquery的attr方法实现图片切换效果
Feb 05 Javascript
微信小程序有旋转动画效果的音乐组件实例代码
Aug 22 Javascript
原生JS实现贪吃蛇小游戏
Mar 09 Javascript
在vue项目中 实现定义全局变量 全局函数操作
Oct 26 Javascript
JavaScript中的值类型转换介绍
Dec 31 #Javascript
javascript实现滑动解锁功能
Dec 31 #Javascript
JavaScript中number转换成string介绍
Dec 31 #Javascript
JavaScript中string转换成number介绍
Dec 31 #Javascript
JavaScript中的object转换函数toString()与valueOf()介绍
Dec 31 #Javascript
JavaScript中的object转换成number或string规则介绍
Dec 31 #Javascript
javascript 事件处理示例分享
Dec 31 #Javascript
You might like
两个强悍的php 图像处理类1
2009/06/15 PHP
php处理文件的小例子(解压缩,删除目录)
2013/02/03 PHP
PHP+iFrame实现页面无需刷新的异步文件上传
2014/09/16 PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
2019/11/09 PHP
WebGame《逆转裁判》完整版 代码下载(1月24日更新)
2007/01/29 Javascript
零基础学JavaScript最新动画教程+iso光盘下载
2008/01/22 Javascript
js操作iframe的一些方法介绍
2013/06/25 Javascript
jquery 页面滚动到指定DIV实现代码
2013/09/25 Javascript
jquery ajax jsonp跨域调用实例代码
2013/12/11 Javascript
JavaScript前补零操作实例
2015/03/11 Javascript
在Ubuntu系统上安装Node.JS的教程
2015/10/15 Javascript
jQuery实用技巧必备(下)
2015/11/03 Javascript
JavaScript实现经典排序算法之冒泡排序
2016/12/28 Javascript
vue-router:嵌套路由的使用方法
2017/02/21 Javascript
基于JavaScript实现弹幕特效
2020/08/27 Javascript
JavaScript工具库之Lodash详解
2019/06/15 Javascript
微信小程序登录时如何获取input框中的内容
2019/12/04 Javascript
vue实现随机验证码功能(完整代码)
2019/12/10 Javascript
vue全局使用axios的操作
2020/09/08 Javascript
Js实现粘贴上传图片的原理及示例
2020/12/09 Javascript
python实现屏保计时器的示例代码
2018/08/08 Python
python实现顺序表的简单代码
2018/09/28 Python
python 判断文件还是文件夹的简单实例
2019/06/10 Python
Django中从mysql数据库中获取数据传到echarts方式
2020/04/07 Python
解析HTML5中的新功能本地存储localStorage
2016/03/01 HTML / CSS
美国精油公司:Plant Therapy
2019/05/17 全球购物
医科大学生的自我评价
2013/12/04 职场文书
党员政治学习材料
2014/05/14 职场文书
会计电算化专业求职信
2014/06/10 职场文书
建筑院校毕业生求职信
2014/06/13 职场文书
大学生实训报告总结
2014/11/05 职场文书
社会治安综合治理责任书
2015/01/29 职场文书
《活见鬼》教学反思
2016/02/24 职场文书
创业计划书之水果店
2019/07/18 职场文书
MySQL数据库完全卸载的方法
2022/03/03 MySQL
MySQL 数据 data 基本操作
2022/05/04 MySQL