深入理解javascript原型和闭包(15)——闭包 - youngperson/study-100 GitHub Wiki
至于“闭包”这个词的概念的文字描述,确实不好解释,我看过很多遍,但是现在还是记不住。 但是你只需要知道应用的两种情况即可——函数作为返回值,函数作为参数传递。
函数作为返回值
function fn() {
var max = 10;
return function bar(x) {
if(x > max) {
console.log(x);
}
}
}
var f1 = fn();
f1(15);
函数作为参数传递
var max = 10,
fn = function(x) {
if(x > max) {
console.log(x);
}
};
(function (f){
var max = 100;
f(15);
})(fn);
要去创建这个函数的作用域取值,而不是“父作用域”