「闭包可以在另一个作用域中调用一个函数的内部函数并访问到该函数的作用域中的成员」
如上述的once函数,返回的新的函数依然可以调用once()函数中的内部变量done
function once(fn)...fn
}
}
}
闭包的本质:函数在执行的时候会放到一个执行栈上当函数执行完毕之后会从执行栈上移除,「但是堆上的作用域成员因为被外部引用不能释放」,因此内部函数依然可以访问外部函数的成员...,来看一下「闭包的过程」
如下图,重点关注的有两个地方,一个设置调试点然后刷新页面可以看到右侧的调试工具,重点关注右侧的Call Stack(调用栈)以及Scope(作用域)可以看到目前所处的作用域在Global...后面的重点来了,然后我们继续往下执行一步,如下视图可以看到调用栈会执行power2()匿名函数,那么这个匿名函数中power是从哪里来的呢?.../fp 模块
lodash 的fp模块提供了实用的对函数式编程友好的方法。