// 闭包应用: 函数作为参数被传递:
function print(fn) {
const a = 200;
fn();
}
const a = 100;
function fn() {
console.log('a:'+a);
}
print(fn); // 100
// 闭包:自由变量的查找,
// 是在函数定义的地方,
// 向上级作用域查找。不是在执行的地方。
// 函数作为返回值被返回:
function create() {
const b = 100;
return function () {
console.log('b:'+b);
};
}
const fn2 = create();
const b = 200;
fn2(); // 100