本标题党又回来了,最近在专心研究一些JS基础性的书籍,以期把原理都了解透彻,所以写文章的频率就降了下来。但是今天我必须要来写一下子,为什么呢,因为今天周五!先说明一下JS里面的拆箱与装箱指的是JS封箱和拆箱,已经玩的很六的大佬就不要浪费时间啦,抓紧研究更深的!

引子:

我们来看一下这段简单的代码,可能有的人会问这有啥,不就是新建一个字符串然后调用字符串上的方法嘛,其实这里面还是有点馅的,下面让我们来尝一尝究竟是什么馅料

首先在JS里面字符串是属于基本数据类型的,那为何基本数据类型上会有方法呢,我套你个猴子的,有方法那不是成对象了。

要解释这个问题我们就不得不提JS里面的一种机制,封装对象的包装与拆装,即装箱与拆箱。

装箱:

当我们在基本数据类型上调用方法的时候,JS会默认进行装箱操作。啥叫装箱呢,下面让我来操作一波好吧。

相信在座的各位或多或少都看过铠甲勇士吧,铠甲勇士一般的桥段就是ERP研究室基地发现有小怪兽出现了,会通知铠甲勇士,此时此刻他们大喊一声铠甲合体!就由一个普通人变为了铠甲勇士,什么火焰拳之类的在普通人状态没有的技能统统都来了!

这就跟装箱操作一样一样的嗷,JS引擎就是ERP基地,而基本数据类型的变量就相当于普通人,方法则相当于技能。作为普通人是没有火焰拳技能的,但是穿上铠甲之后不止能调用函数,打十个都行,来评论区上来几个我给你们示范一下子。这个还要注意一下不是啥技能都能放的,只能放对应铠甲的技能,比如你穿个炎龙铠甲放出个风鹰腿来,你以为你谁,导演吗?这和JS原理是一样的,虽说JS会进行装箱操作,但也不会乱装,字符串装成字String对象,数字装成Number对象...

 

拆箱:

当技能被放了,小怪兽被消灭了完了怎么办呢,当然是取消铠甲合体变回一个普通人咯。JS也这样的,函数也调用完了是吧,调完了就给拆开,把变量重新变回一个基本数据类型的变量。

还有一点需要注意一下,装箱完了使用后会进行拆箱,就跟穿铠甲打完小怪兽装完***后总得解除合体吧,如果一直穿着可就显得有点呆滞了啊!

结语:

好了,今天就先到这里了,上午看到有人说技术文章不应该扯很多废话,个人认为分情况吧,如果多扯几句能记忆更深刻,理解的更透彻,那何乐而不为呢,大家怎么看呢

最新文章

  1. jquery-treegrid树状表格的使用(.Net平台)
  2. block
  3. WIN10 新建ORACLE实例
  4. maven junit 单元测试插件配置
  5. 5个常用Java代码混淆器 助你保护你的代码
  6. C# 正则表达式 转自-每日一bo
  7. 大端小端(Big- Endian和Little-Endian)[转]
  8. JavaScript中的声明提升
  9. Linux下DVD-R刻录问题
  10. Cortex-M3和Cortex-M4 Fault异常应用之二 ----- Fault处理函数的实现
  11. 支持向量机SVM(一)
  12. linkin大话设计模式--代理模式
  13. R语言︱常用统计方法包+机器学习包(名称、简介)
  14. (五)JavaScript 变量
  15. JavaScript——闭包机制
  16. PHP微信支付开发
  17. 【转】失效迭代器(Invalidating Iterators)
  18. javascript版的quine程序-返回自身源码
  19. IIS发布网站之后,页面图片和js未加载出错
  20. linux gzip 命令详解

热门文章

  1. 联想thinkpad如何关闭触摸板
  2. Nuget打包类库及引用
  3. Android 图片处理之 Fresco
  4. mapper 传多个参数
  5. Java8之熟透Optional
  6. Linux MySQL-5.7 root初始密码修改
  7. C++基础之IO类
  8. 【linux】【jenkins】jenkins构建、mvn或者npm打包、docker运行、失败自动回滚脚本
  9. linux虚拟化简介
  10. Idea 配置Jrebel热部署