js闭包是什么??举例子简单化理解
程序员文章站
2022-04-03 23:13:13
...
看了五花八门的文章,越解释越模糊
其实闭包很简单闭包:是指有权访问另一个函数作用域中的变量的函数。
创建闭包的常用方式
//就是在一个函数内部创建另一个函数
//通常都是这种复杂的举例
function createComparisonFunction(propertyName){
return function(object1, object2){
var value1 = object1[propertyName];
var value2 = object2[propertyName];
if (value1 < value2) {
return -1;
} else if (value1 > value2) {
return 1;
} else {
return 0;
}
};
}
//在这个例子中,匿名函数function(object1, object2)是一个闭包,
能访问createComparisonFunction作用域里的所有变量
清晰的讲:闭包就是一个函数,这个函数能够访问其他函数的作用域中的变量。
function outer(){
var a = 123;
var inner = function(){
cosole.log(a)
}
retrun inner
//inner就是一个闭包函数, 因为它能够访问到outer函数的作用域
}