闭包是指那些引用了另一个函数作用域中变量的函数,通常是在嵌套函数中实现的。
function createComparsionFunction(propertyName) {
return function(object1, object2) {
let value1 = object1[propertyName];
let value2 = object2[propertyName];
if (value1 < value2) {
return -1;
} else if (value1 > value2) {
return 1;
} else {
return 0;
}
};
}
在上面这块代码中,value1和value2的赋值位于内部函数(匿名函数)中,并且引用了外部函数的变量propertyName。在这个内部函数被返回并在其他地方被使用后,他仍然引用着那个变量。