JavaScript闭包-萌贝树母婴公司未有坑骗

正如标题所述,JavaScript闭包对我来说一直有点神秘,看过很多闭包的文章,在工作使用过闭包,有时甚至在项目中使用闭包,但我确实是这是在使用闭包的知识。
  最近看到的一些文章,终于,有人用于一种让我明白方式对闭包进行了解释,我将在本文中尝试使用这种方法来解释闭包。
  准备
  在理解闭包之前,有个重要的概念需要先了解一下,就是 js 执行上下文。
  这篇文章是执行上下文 很不错的入门教程,文章中提到:
  当代码在JavaScript中运行时,执行代码的环境非常重要,并将概括为以下几点:
  全局作用域——第一次执行代码的默认环境。
  函数作用域——当执行流进入函数体时。
  (…) —— 我们当作 执行上下文 是当前代码执行的一个环境与作用域。
  换句话说,当我们启动程序时,我们从全局执行上下文中开始。一些变量是在全局执行上下文中声明的。我们称之为全局变量。当程序调用一个函数时,会发生什么?
  以下几个步骤:
  JavaScript创建一个新的执行上下文,我们叫作本地执行上下文。
  这个本地执行上下文将有它自己的一组变量,这些变量将是这个执行上下文的本地变量。
  新的执行上下文被推到到执行堆栈中。可以将执行堆栈看作是一种保存程序在其执行中的位置的容器。
  函数什么时候结束?当它遇到一个return语句或一个结束括号}。

猜你喜欢

转载自blog.51cto.com/14539425/2439008