什么是闭包?
简单理解:闭包=内层函数+外层函数的变量。正如前面所说的作用域链也会涉及到闭包,如下:
let a = 6;//全局作用域 function f() { a = 7;//父级作用域 function d(){ a = 8;//自己的作用域 console.log(a); } d(); } f();
闭包的官方概念:一个函数对周围状态的引用捆绑到一起,内层函数中访问到其外层函数的作用域。
闭包的作用:封闭数据,提供操作,外部也可以访问函数内部的变量。
闭包的写法:
// 闭包:外部可以使用函数内部的变量 function outer(){ let a = 10; function fn() { console.log(a); } return fn } const fun = outer() fun()
上述代码,outer是一个闭包,其本身直接将子函数fn的值返回过来,此时并没与调用,知识单纯的返回值。
我们直接在全局作用域中就可以调用子函数fn
标签:闭包,function,outer,函数,作用域,JavaScript,fn From: https://www.cnblogs.com/yansunda/p/18435749