// 闭包应用: 函数作为参数被传递: 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