📅  最后修改于: 2023-12-03 15:35:28.187000             🧑  作者: Mango
Underscore.js是一个JavaScript实用程序库,提供了许多有用的函数和工具,方便开发者通过函数式编程风格编写JavaScript代码。其中,_.wrap()函数是其中一个常用的函数。
_.wrap()函数的作用是将一个函数包装在另一个函数中,返回一个新的函数,新函数在调用时会自动调用原函数,并根据需要传递参数。这个新函数可以在原始函数前或后执行其他操作,以扩展其功能。
_.wrap(function, wrapper)
参数解释:
返回值:
以下代码为包装一个函数,让它在调用时自动把参数转化为数字类型:
// "parseNumber" 函数用于将输入转化为数字类型
function parseNumber(val) {
return parseInt(val, 10);
}
// 用 "wrapper" 函数包装原函数
var wrappedParseNumber = _.wrap(parseNumber, function(func) {
return function(val) {
return isNaN(val) ? 0 : func(val);
};
});
console.log(wrappedParseNumber("hello")); // => 0
console.log(wrappedParseNumber("42")); // => 42
上方代码通过将"parseNumber"函数包装在"wrapper"函数中,重定义了其行为,使其在验证输入参数后从不返回"NaN"。其中的wrapper函数通过闭包保存了参数"func",并返回一个新函数,新函数在调用时首先验证输入是否为有效数字,然后再调用原函数(通过"func"参数),并返回原函数的返回值。