1.概念
闭包是指有权访问另一个函数作用域中的变量的函数。
闭包在《JavaScript高级程序设计》中这样说的。也就是说当一个函数可以访问他的外部变量,那么它就是一个闭包。
2.创建闭包的常见方式
在一个函数内部创建另一个函数。举个例子。
function createComparisonFunction(propertyName){
return function(object1, object2){
//内部匿名函数访问了外部的propertyName;
//能够访问是因为内部函数的作用域链中包含createComparisionFunction()的作用域;
var value1 = object1[propertyName];
var value2 = object2[propertyName];
if(value1 < value2){
return -1;
}else if(value1 > value2){
return 1;
}else {
return 0;
}
};
}