javascript基础回顾之:闭包和作用域

1、通过闭包可以访问创建闭包时所处环境中的全部变量。闭包为函数创建时所处的作用域中的函数和变量,创建“安全气泡”。通过这种方式,即使创建函数时所处的作用域已经消失,但是函数仍然能够获得执行时所需的全部内容。

2、我们可以使用闭包的这些高级功能:

    -、通过构造函数内的变量以及构造方法来模拟对象的私有属性。

    -、处理回调函数,简化代码。

3、js引擎通过执行上下文桟(调用栈)跟踪函数的执行。每次调用函数时,都会创建新的函数执行上下文,并推入调用栈顶端。当函数执行完成后,对应的执行上下文将从调用栈中推出。

4、js引擎通过词法环境跟踪标识符(俗称作用域)

5、在js中,我们可以定义全局级、函数级别甚至块级别的变量。

6、可以使用关键字var、let与const定义变量:

    -、关键字var定义距离最近的函数级变量或全局变量。

    -、关键字let与const定义距离最近级别的变量,包括块级变量。块级变量在es6之前版本的js中是无法实现的。此外,通过const允许定义只能赋值一次的变量。

7、闭包是js作用域规则的副作用。当函数创建时所在的作用域消失后,仍然能够调用函数。

注:内容来自《javascript忍者秘籍》(第二版)章节总结。

猜你喜欢

转载自blog.csdn.net/qq_27223987/article/details/80950019
今日推荐