JavaScript库里:实际应用是什么?
我认为我还没有抱怨过。我了解它的作用以及如何去做。我只是想不到一种情况,我会使用它。
您在JavaScript中的哪个地方使用currying(或者主要库在哪里使用它)?欢迎使用DOM操作或一般应用程序开发示例。
像功能slideUp
,fadeIn
需要一个元素作为参数,并通常是一个咖喱函数返回带有内置默认的“动画功能”高阶功能。为什么这比仅使用具有某些默认值的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