JavaScript库里:实际应用是什么?

我认为我还没有抱怨过。我了解它的作用以及如何去做。我只是想不到一种情况,我会使用它。

您在JavaScript中的哪个地方使用currying(或者主要库在哪里使用它)?欢迎使用DOM操作或一般应用程序开发示例。

像功能slideUpfadeIn需要一个元素作为参数,并通常是一个咖喱函数返回带有内置默认的“动画功能”高阶功能。为什么这比仅使用具有某些默认值的upper-

up功能更好?

使用它有什么缺点吗?


因此,根据答案,通常使用currying和部分应用是便捷技术。

如果您经常通过使用相同的配置来调用它来“完善”高级功能,则可以使用(或使用Resig的partial)高级功能来创建简单,简洁的帮助器方法。

回答:

这是在使用闭包的JavaScript中有趣和实用的curring用法:

function converter(toUnit, factor, offset, input) {

offset = offset || 0;

return [((offset + input) * factor).toFixed(2), toUnit].join(" ");

}

var milesToKm = converter.curry('km', 1.60936, undefined);

var poundsToKg = converter.curry('kg', 0.45460, undefined);

var farenheitToCelsius = converter.curry('degrees C', 0.5556, -32);

milesToKm(10); // returns "16.09 km"

poundsToKg(2.5); // returns "1.14 kg"

farenheitToCelsius(98); // returns "36.67 degrees C"

这依赖于的curry扩展Function,尽管您可以看到它仅使用apply(没什么花哨的):

Function.prototype.curry = function() {

if (arguments.length < 1) {

return this; //nothing to curry with - return function

}

var __method = this;

var args = toArray(arguments);

return function() {

return __method.apply(this, args.concat([].slice.apply(null, arguments)));

}

}

以上是 JavaScript库里:实际应用是什么? 的全部内容, 来源链接: utcz.com/qa/411688.html

回到顶部