Symbol.for()
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ì.
Symbol.for(key) ë©ìëë 주ì´ì§ í¤ë¥¼ ì¬ì©í´ ë°íì ë²ìì ì¬ë³¼ ë ì§ì¤í¸ë¦¬ìì ì¡´ì¬íë ì¬ë³¼ì ì°¾ê³ ,
ì¡´ì¬í ê²½ì° ì´ë¥¼ ë°íí©ëë¤. ì¡´ì¬íì§ ìë ê²½ì°ìë í´ë¹ í¤ë¥¼ ì¬ì©í´ ì ì ì¬ë³¼ ë ì§ì¤í¸ë¦¬ì ìë¡ì´ ì¬ë³¼ì ìì±í©ëë¤.
ìëí´ ë³´ê¸°
console.log(Symbol.for("bar") === Symbol.for("bar"));
// Expected output: true
console.log(Symbol("bar") === Symbol("bar"));
// Expected output: false
const symbol1 = Symbol.for("foo");
console.log(symbol1.toString());
// Expected output: "Symbol(foo)"
구문
Symbol.for(key)
매ê°ë³ì
key-
문ìì´, íì. ì¬ë³¼ì ëí í¤(ì¬ë³¼ì ì¤ëª í기 ìí´ìë ì¬ì©ë¨).
ë°í ê°
주ì´ì§ í¤ë¥¼ ê°ë ì¡´ì¬íë ì¬ë³¼. ì¡´ì¬íì§ ìì ê²½ì° ìë¡ì´ ì¬ë³¼ì´ ìì±ëê³ ë°íë¨.
ì¤ëª
Symbol()ê³¼ ëì¡°ì ì¼ë¡, Symbol.for() í¨ìë ì ì ì¬ë³¼ ë ì§ì¤í¸ë¦¬ 목ë¡ìì ì¬ì© ê°ë¥í ì¬ë³¼ì ìì±í©ëë¤.
Symbol.for()ë í¸ì¶í ëë§ë¤ ìë¡ì´ ì¬ë³¼ì ìì±íì§ë ìì¼ë©° ë ì§ì¤í¸ë¦¬ìì 주ì´ì§ key를 ê°ë ì¬ë³¼ì´
ì´ë¯¸ ì¡´ì¬íëì§ë¥¼ 먼ì íì¸í©ëë¤. ì¡´ì¬íë ê²½ì° í´ë¹íë ì¬ë³¼ì´ ë°íë©ëë¤.
주ì´ì§ í¤ë¥¼ ê°ë ì¬ë³¼ì´ ì¡´ì¬íì§ ìë ê²½ì°, Symbol.for()ë ìë¡ì´ ì ì ì¬ë³¼ì ìì±í©ëë¤.
ìì
>Symbol.for() ì¬ì©í기
Symbol.for("foo"); // ìë¡ì´ ì ì ì¬ë³¼ì ìì±
Symbol.for("foo"); // ì´ë¯¸ ìì±ë ì¬ë³¼ì ë°í
// ëì¼í ì ì ì¬ë³¼ì´ì§ë§ ì§ìì ì¼ë¡ë ê·¸ë ì§ ìì
Symbol.for("bar") === Symbol.for("bar"); // true
Symbol("bar") === Symbol("bar"); // false
// í¤ë ì¤ëª
ì¼ë¡ ì¬ì©ë기ë í¨
var sym = Symbol.for("mario");
sym.toString(); // "Symbol(mario)"
ì ì ì¬ë³¼ í¤ì ë¤ë¥¸ (ë¼ì´ë¸ë¬ë¦¬ ì½ë) ì ì ì¬ë³¼ì ì´ë¦ ì¶©ëì í¼íë ¤ë©´, ì¬ë³¼ì ì ëì´ë¥¼ ë¶ì´ë ê²ì´ ì¢ìµëë¤.
Symbol.for("mdn.foo");
Symbol.for("mdn.bar");
ëª ì¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification > # sec-symbol.for > |