闭包就是函数执行产生一个私有的作用域,在这个作用域中的私有变量和外界互不干扰,而且作用域不销毁,这些私有变量存储的值也都保存下来了,所有整体来说闭包就是为了保护和保存变量。
应用场景:
1.循环事件绑定,
2.单例模式管理代码:
let xxxRender = (function () {
return {
init: function() {
}
}
})
3.函数柯里化
Function.prototype.bind = function bind(context, ...arg) {
return () => {
fn.call(context, ...arg);
}
}