Array.of()主要是彌補數組構造函數Array()的不足。因為參數個數的不同,導致Array()的重載,Array.of不存在由於參數不同而導致的重載,並且基本上可以用來替代Array()或new Array()
Array.of() 靜態方法通過可變數量的參數創建一個新的 Array 實例,而不考慮參數的數量或類型
官方解釋
基本語法
Array.of() 是創建數組的方法,它接收若干個參數,返回一個新的 Array 實例,類似 Array() 方法
Array.of(參數0,[, 參數1[, ...[, 參數N]]])
基本實例
Array.of() 會按順序接受 N 個參數,接收的所有參數都會成為新數組的項
Array.of() // []
Array.of(undefined) // [undefined]
Array.of(0) // [0]
Array.of(1, 2, 3) // [1, 2, 3]
Array.of總是返回參數值組成的數組。如果沒有參數,
重點比較
Array() // []
Array(2) // [, ,]
Array(1, 2) // [1, 2]
Array.of() // []
Array.of(2) // [2]
Array.of(1, 2, 'abc') // [1, 2, "abc"]
Array 方法在沒有參數、一個參數、兩個參數時,返回結果都不一樣。
- 沒有參數的時候返回一個空數組;
- 有一個參數的時候,返回一個長度為此參數的空數組,並且此數組不能被迭代;
- 有兩個參數的時候,才會把參數當成數組的每一項返回;
這就是用Array.of生成數組的好處
擴展
if (!Array.of) {
Array.of = function() {
return Array.prototype.slice.call(arguments);
};
}
使用 Array 的 slice 方法把接收到的 arguments 參數,轉化成數組的每一項