闭包应用场景
JS闭包在开发实战中的应用
函数内创建内部函数并将内部函数赋值给外部变量情况(没有被返回的内部函数[[Scopes]]同样指向外层函数的作用域链,单独说闭包时为因为其强大的灵活性),外层函数执行结束后外部变量所指向的函数对象[[Scopes]]属性中包含了外部函数中执行产生的局部值。须知道函数的作用域实在创建时候确定的,this值是在运行时候才确定的。
都说闭包如此灵活,强大,我想知道它究竟有什么用处
- 对象的构建
为对象设置私有变量、私有方法(在构造函数上建特权方法访问局部变量)或静态变量和方法(在原型上建公有特权方法访问构造函数上的局部变量) - 事件的回调函数
在回调函数中仍然可以访问到外层同步函数中的参数,变量或函数 - 偏函数(柯里化)
add = num1=> num2=> num1+num2;