(妙味) 包装对象

先上代码:


Paste_Image.png

这里会打印什么呢?
undefined(自问自答好无聊)

那么为什么会打印成undefined呢?
...(自问自懵也好无聊)


现在开始听我解释

先看代码

var a = 'dong';
a.charAt(0)   //a是一个基本类型,为什么也可以拥有好多方法和属性呢?

如果回答是
js里万物皆对象,对象就有属性和方法
那么这个回答只能给60分.
标准答案神奇妙味大讲师给出了回答

包装对象: 基本类型都有自己对应的包装对象
上文里a.charAt(0) 执行到这句话的时候, 基本类型会找到对应的包装对象类型,然后包装对象把所有的属性和方法都给了基本类型,然后----包装对象消失----

所以回到最上面的代码图

Paste_Image.png

执行到a.name = 'dong'这句话的时候, 基本类型要添加一个属性,这时候基本类型会在对应的包装类型上添加该属性. 但是把这个属性给了包装对象后,包装对象消失掉了.
执行console.log(a.name)的时候, a这个基本类型又重新创建了一个新的包装对象,而这个包装对象上是没有刚添加的那个属性的.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,262评论 6 13
  • 若是可以,请让这个瞬间变为永恒。现在能和你躺在一起便是一种享受,或者对于这件事情已经上瘾。爱着一个女的便想拥有她,...
    SZhua阅读 205评论 0 0
  • 芳歌阅读 226评论 0 2
  • 前几天听了马东的演讲,他提到了一个很有趣的结论,就是做事情要解决自己的焦虑。 据他说: 得到是解决大家对成功的焦虑...
    JessieZhai阅读 353评论 0 0
  • 妈妈今早偷看子敬睡觉,发现子敬侧着身睡觉,后来又变回仰睡。从半个多月前的学会翻身到今日的侧身睡觉,子敬又有进步了。...
    东山畸人阅读 167评论 0 0