,来看一下「闭包的过程」
如下图,重点关注的有两个地方,一个设置调试点然后刷新页面可以看到右侧的调试工具,重点关注右侧的Call Stack(调用栈)以及Scope(作用域)可以看到目前所处的作用域在Global...Untitled.png
按F11或command + ; 执行下一步如下结果此时执行makePow函数,可以看到调用栈Call Stack的栈顶为makePow,而Scope作用域多了一个Local就是局部作用域里面存储着...然后我们让程序执行到log的步骤执行的情况,看下面的视图,可以看到Scope中有一个Script的作用域存储着let变量的值,也就是let有一个单独的作用域Script.
?...副作用的来源
配置文件
数据库
获取用户的输入
......(PS:其实不同的语言和框架都是为了解决问题的,请不要忘记程序员的本质就是为了解决问题)
如下代码中,一般常见的方法比如map()第一个参数都需要传递数据才可以执行,但是这样就无法做到柯里化的处理了,那就必须通过柯里化将该方法重新封装一层如下代码