在上篇文章中我們討論了javascript中的預設參數,這篇文章,我們來討論下javascript的arguments參數物件。
如下例的一個函數,我們如何根據傳入參數的不同來做不同的處理呢?
// Should return 6
addAll(1, 2, 3);
// Should return 10
addAll(1, 2, 3, 4);
幸運的是,javascript有一個arguments對象,可以來處理上述情況。 arguments物件是一個類別數組對象,想了解arguments物件的詳細情況請戳這裡,我們使用arguments物件來改變上例:
for (var i = 0; i
sum = arguments[i];
}
return sum;
}
// Returns 6
addAll(1, 2, 3);
// Returns 10
addAll(1, 2, 3, 4);
上面我們說過arguments物件是一個類別數組對象,下面我們來測試下:
//will output false
getName("benjamin");
上述檢驗結果可以看出:
它不是一個數組對象,那麼它和數組對像有什麼不同呢?詳情請戳這裡。
執行下面範例會拋出一個錯誤:
return sorted;
}
sortArgs();
我們可以像下面這樣把一個類別數組物件轉換為數組物件:
// Now this will work!
sorted = args.sort()
return sorted;
}
//will output [1, 2, 3]
console.log(sortArgs(1,3,2));
如果你感覺這篇文章對你有幫助,希望轉給更多需要的人。文章不妥之處,歡迎留言斧正。