HTML5技术

【javascript】详解变量,值,类型和宿主对象 - 外婆的彭湖湾(2)

字号+ 作者:H5之家 来源:H5之家 2017-09-03 13:26 我要评论( )

【注意】在《javascript高级语言程序设计》中叫做基本包装类型, 在《你不知道的javascript》中叫做封装类型, 实际上是同一个意思, 本文主要以后者为名 javascript的一句毒奶名言: 万物皆对象! 但其实我们发现

【注意】在《javascript高级语言程序设计》中叫做“基本包装类型”, 在《你不知道的javascript》中叫做“封装类型”, 实际上是同一个意思, 本文主要以后者为名

 

javascript的一句毒奶名言: 万物皆对象! 但其实我们发现: boolean, Number, String这些基本类型,好像和对象没关系嘛。是的, 它们基本类型的性质决定了它们和对象有本质的不同

但它们“背后”仍有股“来自对象”的 神秘力量的作用着...

 

(此处播放《走进科学》栏目让人毛骨悚然的背景音乐...)

 

有一天彭先生突然想起 var str = 'penghuwan'; str.substring(2)这种司空见惯的用法里,substring(2)是哪里来的? str是字符串,不是对象啊! 那又怎么会拥有对象才有的方法呢!!?

没错, 即使是boolean, number, string这种看似单纯地像一张白纸的基本类型, 在幕后也和“对象”有着肮脏的py交易。。。。 (我说的是朋友交易哦)

 


为了能够自由灵活地操作 Boolean, Number 和String这三个非常常用的 基本类型值(也就是有大量调用方法做处理的需求)
在访问这三个基本类型值的时候, javascript 就会创建一个“不可见”的封装类型,然后在读取完毕时候销毁

例如:

; var s2 = s1.substring(2);

 

(内部)相当于:

); var s2 = s1.substring(2); s1 = null

 

基本类型对应的封装类型的对象只在访问的时候创建,访问完毕就会销毁!该对象的生存期只有一瞬间, 用例子做个 对比:

str = ); str.color = ; console.log(str.color); // 输出red

 

str.color = ; // 下面这条console语句里面的访问会创建另外一个封装对象 console.log(str.color); // 输出undefined

 

 

 

 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 【javascript】函数中的this的四种绑定形式 — 大家准备好瓜子,我要讲故事啦~~ - 外婆的彭湖湾

    【javascript】函数中的this的四种绑定形式 — 大家准备好瓜子,我要

    2017-08-16 11:00

  • 【javascript】详解javaScript的深拷贝 - 外婆的彭湖湾

    【javascript】详解javaScript的深拷贝 - 外婆的彭湖湾

    2017-08-15 12:01

  • 一次浴火重生的MySQL优化(EXPLAIN命令详解) - 禁心尽力

    一次浴火重生的MySQL优化(EXPLAIN命令详解) - 禁心尽力

    2017-08-02 14:00

  • AngularJS“路由”的定义概念、使用详解——AngularJS学习资料教程 - 我叫小熊

    AngularJS“路由”的定义概念、使用详解——AngularJS学习资料教程 -

    2017-07-12 11:01

网友点评
m