25-闭包、偏函数、柯里化
闭包是解决函数变量的作用域的问题。它是能够读取其他函数内部的变量的函数。两大用处:1读取函数内部变量,2让这些变量的值始终保持在内存中,延迟访问。
注意:1)闭包使变量一直保存在内存中,消耗很大,所以不能滥用,会造成网页性能问题。解决方法是,在退出函数前,将不使用的局部变量全部删除。
2)闭包会在父函数外部,改变父函数内部变量的值,所以,把父函数当做对象,把闭包当做它的公用方法,内部变量当做它的私有属性,这时要小心,不要随便改变父函数内部变量的值。
java的闭包里的变量不会被垃圾回收的。
偏函数会固定一些参数,产生更少参数的函数。有bind、call和apply的使用。
柯里化是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。
匿名函数是一类无需定义标识符的函数或子程序。这些是在一次性使用的场景下,比如一些事件处理函数。
参考链接:
https://www.cnblogs.com/mofei12138/p/12037624.html【闭包的理解】
https://copyfuture.com/blogs-details/9fccfe71f4d0b496be88816393c7d343【偏函数、高阶函数、柯里化、匿名函数】
http://blog.sina.com.cn/s/blog_65c2ec5e0101g9jm.html【使用柯里化,则可以很大程度上美化我们的代码】
https://juejin.im/post/6844904052879261710【柯里化 偏函数 函数记忆】
https://www.jb51.net/article/158567.htm【JavaScript偏函数与柯里化实例详解】
https://zhuanlan.zhihu.com/p/264978165【闭包应用-柯里化,偏函数】