Baseline Widely available
ç¥åç Symbol.species
æ¯ä¸ªå½æ°å¼å±æ§ï¼å
¶è¢«æé 彿°ç¨ä»¥å建派ç对象ã
class Array1 extends Array {
static get [Symbol.species]() {
return Array;
}
}
const a = new Array1(1, 2, 3);
const mapped = a.map((x) => x * x);
console.log(mapped instanceof Array1);
// Expected output: false
console.log(mapped instanceof Array);
// Expected output: true
å¯å å¦ å¯æä¸¾ å¦ å¯é
ç½® å¦ æè¿°
species 访é®å¨å±æ§å 许åç±»è¦ç对象çé»è®¤æé 彿°ã
示ä¾ä½ å¯è½æ³å¨æ©å±æ°ç»ç±» MyArray
ä¸è¿å Array
对象ãä¾å¦ï¼å½ä½¿ç¨ä¾å¦ map()
è¿æ ·çæ¹æ³è¿åé»è®¤çæé 彿°æ¶ï¼ä½ 叿è¿äºæ¹æ³è½å¤è¿åç¶çº§ç Array 对象ï¼ä»¥å代 MyArray
对象ãSymbol.species
å
è®¸ä½ è¿ä¹åï¼
class MyArray extends Array {
// è¦ç species å°ç¶çº§ç Array æé 彿°ä¸
static get [Symbol.species]() {
return Array;
}
}
var a = new MyArray(1, 2, 3);
var mapped = a.map((x) => x * x);
console.log(mapped instanceof MyArray); // false
console.log(mapped instanceof Array); // true
è§è æµè§å¨å
¼å®¹æ§ åè§
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4