Baseline Widely available
Symbol.toStringTag
å
ç½®éç¨ï¼well-knownï¼symbol æ¯ä¸ä¸ªå符串å¼å±æ§ï¼ç¨äºå建对象çé»è®¤å符串æè¿°ãå®ç± Object.prototype.toString()
æ¹æ³å
é¨è®¿é®ã
class ValidatorClass {
get [Symbol.toStringTag]() {
return "Validator";
}
}
console.log(Object.prototype.toString.call(new ValidatorClass()));
// Expected output: "[object Validator]"
å¯å å¦ å¯æä¸¾ å¦ å¯é
ç½® å¦ ç¤ºä¾ é»è®¤æ ç¾
ä¸äºå¼æ²¡æ Symbol.toStringTag
ï¼ä½æ¯æé¢å¤ç toString()
表示ãæå
³å®æ´å表ï¼è¯·åè§ Object.prototype.toString()
ã
Object.prototype.toString.call("foo"); // "[object String]"
Object.prototype.toString.call([1, 2]); // "[object Array]"
Object.prototype.toString.call(3); // "[object Number]"
Object.prototype.toString.call(true); // "[object Boolean]"
Object.prototype.toString.call(undefined); // "[object Undefined]"
Object.prototype.toString.call(null); // "[object Null]"
// ... and more
å
ç½®ç toStringTag symbol
大夿°å
ç½®ç对象æä¾äºå®ä»¬èªå·±ç [Symbol.toStringTag]
屿§ãææå
置对象ç [Symbol.toStringTag]
屿§é½æ¯ä¸å¯åçï¼writableï¼ãä¸å¯æä¸¾çï¼enumerableï¼ä½æ¯å¯é
ç½®çï¼configurableï¼ã
Object.prototype.toString.call(new Map()); // "[object Map]"
Object.prototype.toString.call(function* () {}); // "[object GeneratorFunction]"
Object.prototype.toString.call(Promise.resolve()); // "[object Promise]"
// ... and more
ä½¿ç¨ toStringTag èªå®ä¹æ ç¾
å½åå»ºä½ èªå·±çç±»æ¶ï¼JavaScript é»è®¤ç¨âObjectâæ ç¾ï¼
class ValidatorClass {}
Object.prototype.toString.call(new ValidatorClass()); // "[object Object]"
ç°å¨ï¼å¨ toStringTag
ç帮å©ä¸ï¼ä½ å¯ä»¥è®¾ç½®èªå·±çèªå®ä¹æ ç¾ï¼
class ValidatorClass {
get [Symbol.toStringTag]() {
return "Validator";
}
}
Object.prototype.toString.call(new ValidatorClass()); // "[object Validator]"
toStringTag éç¨äºææ DOM åå对象
ç±äº 2020 å¹´å¹´ä¸ WebIDL è§èçååï¼æµè§å¨æ£å¨åææ DOM åå对象添å Symbol.toStringTag
屿§ãä¾å¦ï¼è¦è®¿é® HTMLButtonElement
ä¸ç Symbol.toStringTag
屿§ï¼
const test = document.createElement("button");
test.toString(); // Returns [object HTMLButtonElement]
test[Symbol.toStringTag]; // Returns HTMLButtonElement
è§è æµè§å¨å
¼å®¹æ§ åè§
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