gpt4 book ai didi

javascript - 在_.invoke源代码中,args的作用是什么?

转载 作者:行者123 更新时间:2023-12-01 00:30:58 27 4
gpt4 key购买 nike

几个月前我刚刚开始学习 JS,我试图理解“args”在“_.invoke”源代码中的作用。请问有人可以解答吗?

我阅读了mdn .apply并阅读了其他_.invoke源代码,但无法理解。

  _.invoke = function (collection, functionOrKey, args) {
if(typeof functionOrKey === "string") {
return _.map(collection, function(item) {
return item[functionOrKey].apply(item, args);
});
}
else return _.map(collection, function(item) {
return functionOrKey.apply(item, args);
});
};
<小时/>

测试函数是这样的:

_.invoke(['dog', 'cat'], 'toUpperCase');
});

it('runs the specified method on each item in the array, and returns a list of results', function() {
var upperCasedStrings = _.invoke(['dog', 'cat'], 'toUpperCase');

expect(upperCasedStrings).to.eql(['DOG', 'CAT']);

在测试函数中,没有'args',为什么!?

最佳答案

所发生的一切是您将一个参数或参数数组应用于用于映射集合的函数 - 所有三个都是传递给函数的参数。

它与您在 Lodash/Underscore.js 等库中可能找到的其他方法类似 - 它本质上是一个自定义映射函数,您可以像这样传递参数:

let mapped = _.invoke(arr, aFunc, ["anArgument", 2]);

如果没有传递参数,则传递的函数不需要参数 - toUpperCase 不需要参数,因此不需要任何参数 - 因此不会传递任何参数。

关于javascript - 在_.invoke源代码中,args的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58532748/

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