如何应用传递给函数的任意数量的参数,该函数是JavaScript中另一个函数的参数?
如果一个函数是另一个函数的参数,您将如何对该函数应用数量不限的参数 这就是我所尝试的:如何应用传递给函数的任意数量的参数,该函数是JavaScript中另一个函数的参数?,javascript,Javascript,如果一个函数是另一个函数的参数,您将如何对该函数应用数量不限的参数 这就是我所尝试的: var callIt = function(fn) { for(var i = 1; arguments.length + 1; i++){ return fn(arguments[i]); } }; 练习中有一个功能,用于传达所要求的内容: callIt(sumAll, 1); 也许我喝了太多啤酒 callIt(sumAll, 2,3) // 5 is expected
var callIt = function(fn) {
for(var i = 1; arguments.length + 1; i++){
return fn(arguments[i]);
}
};
练习中有一个功能,用于传达所要求的内容:
callIt(sumAll, 1);
也许我喝了太多啤酒
callIt(sumAll, 2,3) // 5 is expected but I got 2
制作,移除第一个元素,使用apply
var callIt = function(fn) {
var args = [].slice.call(arguments);
return fn.apply(null, args.slice(1));
}
或根据您的代码工作:
var callIt = function(fn) {
var args = [];
for(var i = 1; i < arguments.length; i++){
args.push(arguments[i]);
}
return fn.apply(null, args);
};
var callIt=函数(fn){
var args=[];
for(var i=1;i
制作,移除第一个元素,使用应用
var callIt = function(fn) {
var args = [].slice.call(arguments);
return fn.apply(null, args.slice(1));
}
或根据您的代码工作:
var callIt = function(fn) {
var args = [];
for(var i = 1; i < arguments.length; i++){
args.push(arguments[i]);
}
return fn.apply(null, args);
};
var callIt=函数(fn){
var args=[];
for(var i=1;i
javascript
在问题中返回s,在第一次迭代时从for
循环中返回。另外,
循环的没有返回false
的条件。您可以利用rest参数
将函数参数与传递给callIt的其余参数分开
var callIt=function(fn,…args){
var-res=0;
对于(变量i=0;i
javascript
在问题中返回s,在第一次迭代时从for
循环中返回。另外,
循环的没有返回false
的条件。您可以利用rest参数
将函数参数与传递给callIt的其余参数分开
var callIt=function(fn,…args){
var-res=0;
对于(变量i=0;i 控制台日志(结果)代码>可能返回fn(参数[i]);`解决你的问题?谢谢@StellaMaris,它让这个问题通过了callIt(sumAll,1)
,但不是callIt(sumAll,2,3)
或callIt(sumAll,4,5,6)
:)如果这是一个家庭作业练习,第一段会有提示。。。如果那一段是你自己写的,你已经暗示了解决方案;)我建议您应用它。我认为应用是针对数组的,还是也包含类似数组的对象?该函数将是无用的,因为您可以执行较短且不需要包装的sumAll(1,2,3,4)
。可能返回fn(参数[I]);`解决你的问题?谢谢@StellaMaris,它让这个问题通过了callIt(sumAll,1)
,但不是callIt(sumAll,2,3)
或callIt(sumAll,4,5,6)
:)如果这是一个家庭作业练习,第一段会有提示。。。如果那一段是你自己写的,你已经暗示了解决方案;)我建议你apply
它。我认为apply
是针对数组的,还是也包含类似数组的对象?这个函数没有用,因为你可以做sumAll(1,2,3,4)
它比较短,不需要包装器。谢谢@Lihau的工作。我喜欢第一个,虽然很优雅!由于您已经在使用slice将参数对象转换为数组,返回fn.apply(null,[].slice.call(arguments,1))代码>会更简洁。谢谢@Lihau的帮助。我喜欢第一个,虽然很优雅!由于您已经在使用slice将参数对象转换为数组,返回fn.apply(null,[].slice.call(arguments,1))代码>将更加简洁。