Array.of()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since â¨2015å¹´9æâ©.
Array.of() æ¹æ³æç±å¼æ¸ï¼argumentsï¼çæ¸éä¾å»ºç«ä¸åæ°ç Array 實é«ï¼èä¸ç®¡å¼æ¸çæ¸éæé¡åçºä½ã
Array.of() è Array 建æ§å¼ä¹éçä¸å卿¼å¦ä½èçæ´æ¸å¼æ¸ï¼Array.of(7) æå»ºç«ä¸åææå®åå
ç´ â7âçé£åï¼è Array(7) æå»ºç«ä¸å length 屬æ§å¼çº 7 ç空é£åï¼**註ï¼**éæå³èéåé£åæ 7 å空缺æ¬ä½ï¼empty slotsï¼ï¼èé 7 åå¼çº undefined çæ¬ä½ï¼ã
å試ä¸ä¸
console.log(Array.of("foo", 2, "bar", true));
// Expected output: Array ["foo", 2, "bar", true]
console.log(Array.of());
// Expected output: Array []
èªæ³
Array.of(element0)
Array.of(element0, element1)
Array.of(element0, element1, /* ⦠,*/ elementN)
忏
elementN-
è¦ç¨ä¾æçºæ°å»ºç«ä¹é£åçå ç´ ã
åå³å¼
ä¸åæ°ç Array 實é«ã
æè¿°
æ¤å½å¼æ¯ ECMAScript 2015 æ¨æºçä¸é¨åãæ´å¤è³è¨å¯åè Array.of and Array.from proposal 以å Array.of polyfillã
ç¯ä¾
>ä½¿ç¨ Array.of()
Array.of(1); // [1]
Array.of(1, 2, 3); // [1, 2, 3]
Array.of(undefined); // [undefined]
å¨éé£å建æ§ä¸ä½¿ç¨ of()
å¯ä»¥å¨æ¥å表示æ°é£åé·åº¦çå®å忏çä»»ä½å»ºæ§å¼ä¸èª¿ç¨ of() æ¹æ³ã
function NotArray(len) {
console.log("NotArray called with length", len);
}
console.log(Array.of.call(NotArray, 1, 2, 3));
// NotArray called with length 3
// NotArray { '0': 1, '1': 2, '2': 3, length: 3 }
console.log(Array.of.call(Object)); // [Number: 0] { length: 0 }
When the this value is not a constructor, a plain Array object is returned.
console.log(Array.of.call({}, 1)); // [ 1 ]
Polyfill
è¥ææå·è¡ç°å¢æ²æåçæ¯æ´ï¼å¯ä»¥å¨å
¶ä»ç¨å¼ä¹åå
å·è¡ä»¥ä¸ç¨å¼ç¢¼ä¾å»ºç« Array.of()ã
if (!Array.of) {
Array.of = function () {
return Array.prototype.slice.call(arguments);
};
}
è¦ç¯
| Specification |
|---|
| ECMAScript® 2026 Language Specification > # sec-array.of > |