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);
上面的代码是alerting 1,这是什么原因?
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);
上面的代码是alerting 1,这是什么原因?
该alert
函数只使用它接收到的第一个参数。
您的代码最终归结为:
alert(1, 2, 3, 4, 5, 6);
第二个和更多参数被忽略,因为内置函数对它们不做任何事情。
如果您希望它对它们做任何事情,则必须将它们连接成一个字符串。
function bar(a, b, c, d, e, f) {
alert(Array.prototype.join.call(arguments, ''));
}
该alert()
函数只需要一个参数,因此它只会显示第一个参数。
如果你想显示它们,你需要将它们连接成一个字符串:
alert(a + "," + b + "," +c);
您可以将所有参数作为数组传递,例如:
功能条(a,b,c,d,e,f){ 变量 k = [a,b,c,d,e,f]; 警报(k); } 函数 foo() { bar.apply(this, arguments); } 富(1、2、3、4、5、6);