欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 前端技术 > javascript >内容正文

javascript

JS partial-application

发布时间:2023/12/4 javascript 36 豆豆
生活随笔 收集整理的这篇文章主要介绍了 JS partial-application 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

为什么80%的码农都做不了架构师?>>>   

/* Title: Partial applicationDescription: the process of fixing a number of arguments to a function, producing another function of smaller arity */var partialAny = (function(aps) {// This function will be returned as a result of the immediately // invoked function expression and assigned to the `partialAny` var.function func(fn) {var argsOrig = aps.call(arguments, 1);return function() {var args = [],argsPartial = aps.call(arguments),i = 0;// Iterate over all the originally-spedicified arguments. If that// argument was the `partialAny._` placeholder, use the next just// passed-in argument, otherwise use the originally-specified // argument.for (; i < argsOrig.length; i++) {args[i] = argsOrig[i] === func._ ? argsPartial.shift() : argsOrig[i];}// If any just-passed-in arguments remain, add them to the end.return fn.apply(this, args.concat(argsPartial));};}// This is used as the placeholder argument.func._ = {};return func; })(Array.prototype.slice);// Slightly more legitimate example function hex(r, g, b) {return '#' + r + g + b; }var redMax = partialAny(hex, 'ff', partialAny._, partialAny._); console.log(redMax('11', '22')); // "#ff1122" // Because `_` is easier on the eyes than `partialAny._`, let's use // that instead. This is, of course, entirely optional, and the name // could just as well be `foo` or `PLACEHOLDER` instead of `_`. var __ = partialAny._;var greenMax = partialAny(hex, __, 'ff'); console.log(greenMax('33', '44'));var blueMax = partialAny(hex, __, __, 'ff'); console.log(blueMax('55', '66'));var magentaMax = partialAny(hex, 'ff', __, 'ff'); console.log(magentaMax('77'));// reference // http://msdn.microsoft.com/en-us/magazine/gg575560.aspx 参考 : https://github.com/shichuan/javascript-patterns/blob/master/function-patterns/partial-application.html

转载于:https://my.oschina.net/i33/blog/144065

总结

以上是生活随笔为你收集整理的JS partial-application的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。