JS-06 (作用域链和闭包)

1 作用域

作用域是一个变量的可用范围。

JS包括两级作用域:全局作用域(window)和函数作用域。

这里需要知道另一个知识点:函数的生命周期

  ①定义函数时

  ②调用函数时

  ③函数调用后

2 作用域链 多级作用域串联形成的链式结构,控制着一个函数可用的所有变量:先局部,局部没有再从全局找

注意:js中没有块级作用域,for等分支循环内声明 的变量出了循环还是能用

3 闭包

作用:重用一个变量,又保护变量不被篡改的一种编程方法

本质:外层函数的函数作用域对象因为被内层函数引用这无法释放就成了闭包

如何做:

(1)外层函数包裹要保护的变量和内层函数对象;

(2)外层函数返回内层函数对象到外部

(3)使用者必须调用外层函数才能获得返回的内层函数并用变量接住

闭包形成的原因: 外层函数调用后外层函数的作用域对象无法释放形成了闭包

猜你喜欢

转载自www.cnblogs.com/codexlx/p/12482923.html
今日推荐