闭包是面试中很容易会问到的一个概念。
js的作用域分为全局作用域和局部作用域(es6里出现了块级作用域),函数内部可以获取外部的全局变量,但是函数外部不能获取函数内部的变量。
如果外部要获取函数内部的变量要怎么办呢?
这个时候只要在函数内部再构造一个函数,把内部的变量return出来就行了。
function f1(){
var n=1;
function f2(){
return n;
}
}
这里的f2()就是闭包。
闭包是面试中很容易会问到的一个概念。
js的作用域分为全局作用域和局部作用域(es6里出现了块级作用域),函数内部可以获取外部的全局变量,但是函数外部不能获取函数内部的变量。
如果外部要获取函数内部的变量要怎么办呢?
这个时候只要在函数内部再构造一个函数,把内部的变量return出来就行了。
function f1(){
var n=1;
function f2(){
return n;
}
}
这里的f2()就是闭包。