闭包都有那些日常应用场景

1 . 避免全局变量的污染

// Declare an anonymous function
(function () {
  var foo = 42;
  console.log(window.foo);
  // → undefined
  console.log(foo);
  // → 42
})();

或者你也可以选择将 window 以及其它全局的东西(例如 document)都作为参数传给那个函数(这样做也可能对性能会有所提升):

(function (global, doc) {
 global.setTimeout(function () {
    doc.body.innerHTML = "Hello!";
 }, 1000);
})(window, document);
JSRUN notes