宝哥软件园

JavaScript函数的编译原理及用法分析

编辑:宝哥软件园 来源:互联网 时间:2021-09-05

本文结合实例介绍了JavaScript函数Korization的原理和用法。分享给大家参考,如下:

Corization就是这样一个转换过程,接受多个参数的函数被转换成接受单个参数的函数,如果需要其他参数,则返回一个接受剩余参数并返回结果的新函数。

也就是说,固定一些参数,返回一个接受剩余参数的函数,也叫部分计算函数,目的是缩小应用范围,创建一个更有针对性的函数。

比如我想创建一个自我介绍的函数。每个人只需要输入自己的姓名、性别和年龄。但是A使用这个功能的时候,每次调用都要输入一次自己的名字和性别。其实只是他的年龄变了。所以A会为自己生成一个柯立芝自我介绍函数,其中名字和性别是固定参数。

相关代码见github。

函数curry(fn){ var args=array . prototype . slice . call(arguments,1);return function(){ var innerArgs=array . prototype . slice . call(arguments);var final args=args . concat(innerArgs);返回fn.apply(null,FIlenargs);};}函数selfIntroduction(姓名、性别、年龄){ console.log('hi,我是'姓名','年龄'岁' ')。我是一个“性别”);} var curried self introduction=curry(self introduction,‘A’、‘man’);curried self introduction(' 12 ');curried self introduction(' 13 ');curried self introduction(' 14 ');执行后的结果。

当然,我们也可以写一个科里奥利函数来绑定新的范围。

函数curry(fn,context){ var args=array . prototype . slice . call(arguments,2);return function(){ var innerArgs=array . prototype . slice . call(arguments);var final args=args . concat(innerArgs);返回fn.apply(context,FinalArgs);};}虽然柯立芝函数很牛逼,但也让你不得不稍微注意一下自己定义的函数的参数顺序。函数核心化允许并鼓励您将复杂的函数分成更小、更易于分析的部分。这些小逻辑单元显然更容易理解和测试,然后你的应用就会变成一个干净整洁的组合,一个小单元的组合。因此,如果您能正确使用科里奥利函数,它将使您的JS代码更加优雅。

注意:建议大家看一下ES6(s 2015)中的Proxy,这是预处理函数的另一种方法。

关于JavaScript的更多信息,请看本网站专题:《javascript面向对象入门教程》、《JavaScript中json操作技巧总结》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript数学运算用法总结》。

希望本文对JavaScript编程有所帮助。

更多资讯
游戏推荐
更多+