闭包是指有权访问另一个函数作用域的变量的函数。创建闭包的常见方式,就是在一个函数的内部创建另一个函数。1
2
3
4
5
6
7
8
9
10
11
12
13function createComparison(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;
}
}
}
上面就是一个闭包的例子,内部函数可以访问外部函数的propertyName参数,因为内部函数的作用域链包含了createComParision的作用域。