Symbol.for() फंक्शन रनटाइम-वाइड सिंबल रजिस्ट्री में दिए गए की के लिए सिंबल खोजता है। यदि सिंबल मिल जाता है तो उसे लौटाता है, अन्यथा ग्लोबल सिंबल रजिस्ट्री में एक नया सिंबल बनाकर लौटाता है।
उदाहरण
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>
body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; }
div { font-size: 20px; font-weight: 500; }
</style> </head> <body>
<h1>JavaScript Symbol.for() फंक्शन</h1>
<div class="sample"></div>
<button class="Btn">यहां क्लिक करें</button>
<h3>ऊपर दिए गए बटन पर क्लिक करके सिंबल प्राप्त करें</h3>
<script>
let fillEle = document.querySelector(".sample");
let symbol = [];
symbol.push(Symbol.for("New"));
symbol.push(Symbol.for("Hello"));
symbol.push(Symbol.for(345));
document.querySelector(".Btn").addEventListener("click", () => {
symbol.forEach((item) => (fillEle.innerHTML += item.toString() + "<br>"));
});
</script> </body> </html>
आउटपुट
क्लिक करने पर निम्नलिखित सिंबल प्रदर्शित होंगे:
Symbol(New)Symbol(Hello)Symbol(345)
मुख्य अंतर:
| Symbol() | Symbol.for() |
|---|---|
| हर बार नया यूनिक सिंबल बनाता है | ग्लोबल रजिस्ट्री में मौजूद सिंबल को पुन: उपयोग करता है |
| क्रॉस-रियलम शेयर नहीं किया जा सकता | क्रॉस-रियलम (iframe, service worker) शेयर किया जा सकता है |
नोट: Symbol.for() में पास किया गया की स्ट्रिंग में परिवर्तित हो जाता है, इसलिए Symbol.for(345) और Symbol.for("345") समान सिंबल लौटाएंगे।