![](/img/trans.png)
[英]What's the clearest way to indicate a function uses the 'arguments' object?
[英]What's type Object function arguments
我運行下面的代碼,為什么會這樣
function show(a,b) {
arguments[0] = 10;
arguments[1] = 20;
console.log(a,b);
}
show();//undefined undefined
show(2);//10 undefined
看這段代碼,為什么? 有什么不同[10] [0:10]? 此代碼在瀏覽器中運行
function show(a) {
console.log(arguments);
arguments[0] = 10;
console.log(arguments)
console.log(a);
}
show();//[] [0: 10] undefined
show(2);//[2] [10] 10
基於有關參數的 MDN描述:
arguments對象是類似於數組的對象,與傳遞給函數的參數相對應。
和:
該對象包含傳遞給函數的每個參數的條目,第一個條目的索引從0開始
所以,你的函數參數[0]參照與變量如果在函數中傳遞,而當你指定參數[0],這意味着您指定的變量太多。
希望這可以幫助。
來自torazaburo答案的更新:
如果沒有傳入a(如show()所示),則arguments [0]不會作為a的別名,並且設置arguments [0]對a無效; 在這種情況下,a仍未定義。
function show(a,b) {
arguments[0] = 10;
arguments[1] = 20;
console.log(a,b);
}
如果a
沒有傳入(如在show()
則arguments[0]
不別名a
,並設定arguments[0]
有沒有影響a
; 在這種情況下, a
仍未定義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.