Array.of()
åºçº¿
广æ³å¯ç¨
èª 2015å¹´9æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
Array.of() éææ¹æ³éè¿å¯åæ°éçåæ°å建ä¸ä¸ªæ°ç Array å®ä¾ï¼èä¸èèåæ°çæ°éæç±»åã
å°è¯ä¸ä¸
console.log(Array.of("foo", 2, "bar", true));
// Expected output: Array ["foo", 2, "bar", true]
console.log(Array.of());
// Expected output: Array []
è¯æ³
Array.of()
Array.of(element0)
Array.of(element0, element1)
Array.of(element0, element1, /* ⦠,*/ elementN)
åæ°
elementN-
ç¨äºå建æ°ç»çå ç´ ã
è¿åå¼
æ°ç Array å®ä¾ã
æè¿°
Array.of() å Array() æé 彿°ä¹é´çåºå«å¨äºå¯¹åä¸ªåæ°çå¤çï¼Array.of(7) å建ä¸ä¸ªå
·æå个å
ç´ 7 çæ°ç»ï¼è Array(7) å建ä¸ä¸ª length 为 7 ç空æ°ç»ï¼è¿æå³çä¸ä¸ªç± 7 ä¸ªç©ºæ§½ç»æçæ°ç»ï¼è䏿¯ç± 7 个 undefined ç»æçæ°ç»ï¼ã
Array.of(7); // [7]
Array(7); // ç± 7 ä¸ªç©ºæ§½ç»æçæ°ç»
Array.of(1, 2, 3); // [1, 2, 3]
Array(1, 2, 3); // [1, 2, 3]
Array.of() æ¹æ³æ¯ä¸ä¸ªéç¨ç工忹æ³ãä¾å¦ï¼å¦æ Array çå类继æ¿äº of() æ¹æ³ï¼ç»§æ¿ç of() æ¹æ³å°è¿ååç±»çæ°å®ä¾è䏿¯ Array å®ä¾ãäºå®ä¸ï¼this å¼å¯ä»¥æ¯ä»»ä½æ¥ååä¸ªåæ°è¡¨ç¤ºæ°æ°ç»é¿åº¦çæé 彿°ï¼å¹¶ä¸æé 彿°å°ä¸ä¼ éç» of() çåæ°æ°éä¸èµ·è¢«è°ç¨ã彿æå
ç´ é½è¢«åé
æ¶ï¼æç»ç length å°å次设置ã妿 this å¼ä¸æ¯æé 彿°ï¼åæ¹ç¨æ®éç Array æé 彿°ã
示ä¾
>ä½¿ç¨ 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 }
å½ this å¼ä¸æ¯æé 彿°æ¶ï¼è¿åä¸ä¸ªæ®éç Array 对象ã
console.log(Array.of.call({}, 1)); // [ 1 ]
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification> # sec-array.of> |