Javascript 在"调用源代码"中,参数是什么';角色
几个月前,我才开始学习JS,我试图理解“args”在“u.invoke”源代码中的作用。 请问有人能回答这个问题吗 我读了mdn.apply并阅读了其他512; invoke源代码,但无法理解Javascript 在"调用源代码"中,参数是什么';角色,javascript,arrays,function,lodash,Javascript,Arrays,Function,Lodash,几个月前,我才开始学习JS,我试图理解“args”在“u.invoke”源代码中的作用。 请问有人能回答这个问题吗 我读了mdn.apply并阅读了其他512; invoke源代码,但无法理解 _.invoke = function (collection, functionOrKey, args) { if(typeof functionOrKey === "string") { return _.map(collection, function(item) {
_.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']);
在测试函数中,没有“参数”,为什么 所发生的一切是您将一个参数或一组参数应用于用于映射集合的函数-这三个参数都是传递给函数的参数 它类似于在库中找到的其他方法,如Lodash/underline.js-它本质上是一个自定义映射函数,在其中传递参数如下:
let mapped = _.invoke(arr, aFunc, ["anArgument", 2]);
如果未传递任何参数,则传递的函数不需要参数-
toUpperCase
不需要参数,因此不需要任何参数-因此不传递任何参数。所发生的一切是将一个参数或参数数组应用于用于映射集合的函数-所有三个参数都传递给函数
它类似于在库中找到的其他方法,如Lodash/underline.js-它本质上是一个自定义映射函数,在其中传递参数如下:
let mapped = _.invoke(arr, aFunc, ["anArgument", 2]);
如果没有传递参数,则传递的函数不需要参数-toUpperCase
不需要参数,因此不需要参数-因此不传递参数