[笔记] JavaScript 的基本观念 – 13 – Closure 闭包

章节连结

函式可以存取的变量,有其内往外找的特性。换言之,若一个函式其变量在自己的{}(封包)内没有找到,那就会往外寻找直到 Global Execution。纵使函式其所占有的内存位置已经被回收,但在封包内的函数仍然会保留。
javascript es6 logo


课程对应章节

Course 46 ~ Course 49 (全部一共有 85 Courses)

请注意:本系列文章为个人对应课程的消化吸收后,所整理出来的内容。换言之,并不一定会包含全部的课程内容,也有可能会添加其他资源来说明。课程连结网址:http://tinyurl.com/w7vrql6

内容

1. 闭包(Closure)的最主要目的,是让 function 能够有专有的变量,以免变量污染。
2. 纵使命名不同的变量,通通呼叫同一个函式。不过在 Execution Stack 上执行是各自独立的,且变量都具有独立的内存位置。当 function 于 execution stack 的环节结束了,变量并不会从内存中被清除。因此,当你在其他变量中呼叫此变量时,
3. 在 ES6 中,引入了 let 的概念。let 的变量作用域范围都只会在 {} 闭包内,可以避免变量暴露在 global 环境中,而不小心被变更到而输出意外的结果。


JavaScript 全攻略系列文章

  • [笔记] JavaScript 的基本观念 – 20 – something new 新玩意
  • [笔记] JavaScript 的基本观念 – 19 – 检视 / 建立框架 view & build a framework
  • [笔记] JavaScript 的基本观念 – 18 – 其他 miscellaneous
  • [笔记] JavaScript 的基本观念 – 16 – new 和 constructor function 函数建构子
  • [笔记] JavaScript 的基本观念 – 15 – prototype, reflection & extend
  • [笔记] JavaScript 的基本观念 – 14 – call()、apply() 与 bind()
  • [笔记] JavaScript 的基本观念 – 12 – IIFE
  • [笔记] JavaScript 的基本观念 – 11 – Array, Syntax, Semicolon
  • [笔记] JavaScript 的基本观念 – 10 – this
  • [笔记] JavaScript 的基本观念 – 9 – 函数与物件 Function and Object
  • [笔记] JavaScript 的基本观念 – 8 – Boolean & if/else
  • [笔记] JavaScript 的基本观念 – 17 – 内建函数建构子
  • [笔记] JavaScript 的基本观念 – 7 – 运算子
  • [笔记] JavaScript 的基本观念 – 6 – 型别
  • [笔记] JavaScript 的基本观念 – 5 – Asynchronous
  • [笔记] JavaScript 的基本观念 – 4 – Variable Environment
  • [笔记] JavaScript 的基本观念 – 3 – Execution Stack
  • [笔记] JavaScript 的基本观念 – 2 – undefined
  • [笔记] JavaScript 全攻略:克服 JS 的奇怪部分
  • [笔记] JavaScript 的基本观念 – 1 – Hoisting
  • 按赞加入粉丝团

    延伸阅读