2018-01-08

你不知道的js上篇

  1. 闭包
    1. 无论通过何种手段将内部函数传递到所在的词法作用域以外,它都会持有对原始定义作用域的引用,无论在何处执行这个函数都会使用闭包
    2. 模块就是利用闭包的强大威力
    3. 模块模式具备的两个必要条件
      1. 必须有外部的封闭函数,该函数必须至少被调用一次(每次调用都会创建一个新的模块实例)
      2. 封闭函数必须返回至少一个内部函数,这样内部函数才能在私有作用域中形成闭包,并且可以访问或者修改私有的状态
    4. 现代和未来模块机制,由ES6对于模块系统升级,都是当独立的模块来处理
    5. 当函数可以记住并访问所在的词法作用域,即使函数是在当前词法作用域之外执行,这时就产生了闭包
    6. 附录:
      1. 词法作用域是在写代码或者说定义时确定的,而动态作用域是在运行时确定的
      2. 词法作用域关注函数在何处声明,而动态作用域关注函数从何处调用
      3. 块作用域,ES6的出现现在更容易实现
      4. ES6的“=>”箭头函数为this的稳定方式,还可用bind()

总结:闭包在现在写的函数中无处不在,理解作用域词法,引擎的查询,提升形式,加上闭包形成的强大的模块机制,还有ES6更多新的好的东西,在组件或者模块开发上构成了现在的形式,以后也许还会有另外的形式,但这一两年还是这主流的模块开发

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

推荐阅读更多精彩内容

  • 第七章 疑凶 入了东宫宫门,李崇孝顾不得众侍卫、宫女太监们惊疑的目光,直是一路抢步快行。忽听得身后远远有人一声叫道...
    宫阙晴岚阅读 431评论 0 0
  • 周末两天收拾了一下已经不忍直视的家,拖了地板洗了马桶然后看了一场电影,然后周日加班,生活好像麻木了。对着日历安排着...
    稀米落阅读 266评论 0 0
  • 昨天没有写日志,实在不想写,有时候明知道应该做的事就是不想做,今天和我的海星交流了很久,把我学到的很多东西交给...
    徐晓琳111阅读 170评论 0 3
  • 1、本月孩子的进步与成长: (1)通过这一个月对大宝的阅读伴读,大宝对阅读的兴趣更加浓厚。从三岁开始,我们就经常给...
    熊孩子课堂阅读 288评论 0 0
  • 夜已经深了,病房里四周寂静,唯一发出的就是我敲键盘的声音。师弟在阳台和我共同等候着老弟的点滴的结束。师弟是个很好的...
    w吴小敏阅读 237评论 0 0