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 相关文章推荐
15个款优秀的 jQuery 图片特效插件推荐
Nov 21 Javascript
FusionCharts图表显示双Y轴双(多)曲线
Nov 22 Javascript
ExpressJS入门实例
Jan 14 Javascript
javascript实现俄罗斯方块游戏的思路和方法
Apr 27 Javascript
20分钟轻松创建自己的Bootstrap站点
May 12 Javascript
浅谈js多维数组和hash数组定义和使用
Jul 27 Javascript
Angular.js中下拉框实现渲染html的方法
Jun 18 Javascript
jQuery remove()过滤被删除的元素(推荐)
Jul 18 jQuery
基于JavaScript实现新增内容滚动播放效果附完整代码
Aug 24 Javascript
简单明了区分escape、encodeURI和encodeURIComponent
May 26 Javascript
微信小程序 slot踩坑的解决
Apr 01 Javascript
学习LayUI时自研的表单参数校验框架案例分析
Jul 29 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
.htaccess文件保护实例讲解
2011/02/06 PHP
thinkphp框架实现删除和批量删除
2016/06/29 PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
2019/06/14 PHP
PHP多进程简单实例小结
2019/11/09 PHP
Google韩国首页图标动画效果
2007/08/26 Javascript
JavaScript中的其他对象
2008/01/16 Javascript
JavaScript 数组的 uniq 方法
2008/01/23 Javascript
Chrome中JSON.parse的特殊实现
2011/01/12 Javascript
jQuery动态添加的元素绑定事件处理函数代码
2011/08/02 Javascript
仿谷歌主页js动画效果实现代码
2013/07/14 Javascript
jQuery中offsetParent()方法用法实例
2015/01/19 Javascript
js实现百度联盟中一款不错的图片切换效果完整实例
2015/03/04 Javascript
json的使用小结
2016/06/08 Javascript
轻松理解JavaScript之AJAX
2017/03/15 Javascript
JSONP基础知识详解
2017/03/19 Javascript
lhgcalendar时间插件限制只能选择三个月的实现方法
2017/07/03 Javascript
JavaScript设计模式之代理模式实例分析
2019/01/16 Javascript
js实现图片局部放大效果详解
2019/03/18 Javascript
JavaScript修改注册表实例代码
2020/01/05 Javascript
JavaScript检测浏览器是否支持CSS变量代码实例
2020/04/03 Javascript
深入理解javascript中的this
2021/02/08 Javascript
整理Python中的赋值运算符
2015/05/13 Python
python数据清洗系列之字符串处理详解
2017/02/12 Python
python写入已存在的excel数据实例
2018/05/03 Python
python+selenium 点击单选框-radio的实现方法
2019/09/03 Python
线程安全及Python中的GIL原理分析
2019/10/29 Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
2020/08/20 Python
python打包多类型文件的操作方法
2020/09/21 Python
Html5 FileReader实现即时上传图片功能实例代码
2014/09/01 HTML / CSS
荟萃全球保健品:维他购
2018/05/09 全球购物
法学专业毕业生自荐信范文
2013/12/18 职场文书
社区七一党员活动方案
2014/01/25 职场文书
材料成型及控制工程专业求职信
2014/06/19 职场文书
管理工程专业求职信
2014/08/10 职场文书
工作态度怎么写
2015/06/25 职场文书
《游戏公平》教学反思
2016/02/20 职场文书