我最近写了一个简单的程序用于学习目的(现在)基本上只是将所有数字加在一起。但是,出于某种原因,当我尝试调用它(程序是一个函数)时,它会输出“超出最大调用堆栈大小”错误。有什么办法可以解决吗?答案可能非常明显,但我在这方面非常初学。这是代码:
var add = function(num1, num2, num3, num4, num5) {
for(i = 0; i < add.length; i++) {
if(i === 0) {
var first = add(i);
} else if(i === 1) {
var second = add(i);
} else if(i === 2) {
var third = add(i);
} else if(i === 3) {
var fourth = add(i);
} else if(i === 4) {
var fifth = add(i);
console.log(first + second + third + fourth + fifth);
};
};
};
add(1, 2, 3, 4, 5);
答案 0 :(得分:1)
我相信您正在了解arguments。
因为做add.length
根本没有任何意义。
var add = function(num1, num2, num3, num4, num5) {
for (i = 0; i < arguments.length; i++) {
if (i === 0) {
var first = arguments[i];
} else if (i === 1) {
var second = arguments[i];
} else if (i === 2) {
var third = arguments[i];
} else if (i === 3) {
var fourth = arguments[i];
} else if (i === 4) {
var fifth = arguments[i];
}
}
console.log(first + second + third + fourth + fifth);
};
add(1, 2, 3, 4, 5);
&#13;
你可以像这样写
var add = function() {
var sum = 0;
for (var i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
};
console.log(add(1, 2, 3, 4, 5));
console.log(add(1, 2, 3, 4));
&#13;
函数应该接受参数,处理然后返回结果。