簡體   English   中英

什么是對象函數參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM