我是 JavaScript 新手。我想弄清楚为什么这不起作用:
function myFunction(){
document.getElementById("result").value=add(1,2);
}
function add(){
var sum = 0;
for(var i in arguments)
sum += i;
return sum;
}
这会输出 001
。为什么?
最佳答案
您正在迭代键,执行此操作:
function add(){
var sum = 0;
for(var i in arguments)
sum += arguments[i];
return sum;
}
更具体地说,键是字符串,"0"
和 "1"
,因此您的响应是初始 0 和后续键的串联。
此外,如果您对现代平台上的 javascript 感兴趣,下面的内容非常简洁明了。
function add(){
return [].reduce.call(arguments, function(a, b) {
return a+b;
});
}
console.log(add(1,2));
关于javascript - 为什么 for(var i in arguments) 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17689650/