[关闭]
@Bios 2018-12-10T08:43:59.000000Z 字数 502 阅读 791

柯理化

js


深入解析JavaScript函数柯理化的实现


在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。

中心思想:降低通用性,提高适用性

特点:
- 参数复用
- 提前返回 (return)


apply会执行函数
传入参数时,先把他们存在数组中,当没有传参就执行计算


- 参数的多少跟函数体的复杂性成正比
- 参数的多少跟函数的维护难度成正比
- 参数的多少跟用户的使用难度成正比

  1. // 通用
  2. function curry(fn, args) {
  3. var length = fn.length, // 获取方法的参数个数
  4. args = args || [];
  5. return function() {
  6. var _args = args.slice(0), i;
  7. for (i=0;i<arguments.length; i++) {
  8. _args.push(arguments[i]);
  9. }
  10. if (_args.length < length) {
  11. return curry.call(this, fn, _args);
  12. } else {
  13. return fn.apply(this, _args);
  14. }
  15. }
  16. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注