function bar(a, b, c, d, e, f) {
alert(a, b, c, d, e, f)
}
function foo() {
bar.apply(this, arguments);
}
foo(1, 2, 3, 4, 5, 6);
上面的代码警告1,这是什么原因?
答案 0 :(得分:3)
alert
函数仅使用它接收的第一个参数。
您的代码最终归结为:
alert(1, 2, 3, 4, 5, 6);
第二个和其他参数被忽略,因为内置函数对它们没有任何作用。
如果您希望它对它们执行任何操作,则必须将它们连接成一个字符串。
function bar(a, b, c, d, e, f) {
alert(Array.prototype.join.call(arguments, ''));
}
答案 1 :(得分:3)
alert()
函数只需要一个参数,因此它只显示第一个参数。
如果你想要显示它们,你需要将它们连接成一个字符串:
alert(a + "," + b + "," +c);
答案 2 :(得分:0)
您可以将所有参数作为数组传递:
function bar(a, b, c, d, e, f) { var k = [a,b,c,d,e,f]; alert(k); } function foo() { bar.apply(this, arguments); } foo(1, 2, 3, 4, 5, 6);