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,這裏的原因是什麼?爲什麼警報(1,2,3,...)只顯示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);
上面的代碼提醒1,這裏的原因是什麼?爲什麼警報(1,2,3,...)只顯示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);
你可以通過所有參數作爲一個數組一樣:
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);
我覺得參數欄中聲明甚至不重要,在這種情況下可以刪除... – nhahtdh