gpt4 book ai didi

javascript - JavaScript 中的函数组合

转载 作者:行者123 更新时间:2023-11-29 14:49:04 24 4
gpt4 key购买 nike

下划线、lo-dash 等库中的函数组合实现有什么好处,类似于这个:

var compose = function() {
var funcs = arguments;

return function() {
var args = arguments;
for (var i = funcs.length; i --> 0;) {
args = [funcs[i].apply(this, args)];
}
return args[0];
}
};

var c = compose(trim, capitalize);

与此相比:

var c = function (x) { return capitalize(trim(x)); };

后者性能更高。

最佳答案

一方面,它更易于阅读。性能很少比这更重要。此外,您可以制作具有几乎相同性能的专用 arity 2 函数。

另一个好处是可以在运行时轻松更改组合。您可以创建在大写前 trim 、在 trim 前大写、仅 trim 、仅大写或两者都不 trim 的版本,而无需在代码中明确指定每个组合。有时这可以大大简化您的代码。运行时组合是您从来不知道自己一直想要的东西之一。

例如:

var c = function(x) {return x;} // identity
var onTrimClick = function() {c = compose(c, trim);}
var onCapitalizeClick = function() {c = compose(c, capitalize);}
var onSomethingElseClick = function() {c = compose(c, somethingElse);}

这让您可以在运行时根据用户点击的内容和顺序创建一个组合函数 c

关于javascript - JavaScript 中的函数组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28821765/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com