Symbol.toPrimitive एक वेल-नोन सिंबल है जो किसी ऑब्जेक्ट को संबंधित प्रिमिटिव मान में बदलने के लिए फंक्शन को निर्दिष्ट करता है। जब किसी ऑब्जेक्ट को प्रिमिटिव मान की आवश्यकता होती है, तो JavaScript इस मेथड को कॉल करता है।
सिंटैक्स
obj[Symbol.toPrimitive](hint)
hint पैरामीटर अपेक्षित प्रकार निर्दिष्ट करता है: "number", "string", या "default"।
उदाहरण
<!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.toPrimitive उदाहरण</h1>
<div class="sample"></div>
<button class="Btn">यहां क्लिक करें</button>
<h3>ऊपर दिए गए बटन पर क्लिक करके ऑब्जेक्ट को नंबर के साथ जोड़ें</h3>
<script>
let fillEle = document.querySelector(".sample");
let obj = {
num: 22,
[Symbol.toPrimitive](hint) {
console.log("Hint:", hint); // "number", "string", या "default"
return this.num;
},
};
document.querySelector(".Btn").addEventListener("click", () => {
fillEle.innerHTML = obj + 44; // 66 प्रदर्शित होगा
});
</script> </body> </html>
आउटपुट
बटन पर क्लिक करने पर 66 प्रदर्शित होगा (22 + 44)।
व्यावहारिक उदाहरण:
const temperature = {
celsius: 25,
[Symbol.toPrimitive](hint) {
switch (hint) {
case "number": return this.celsius;
case "string": return `${this.celsius}°C`;
default: return this.celsius;
}
}
};
console.log(temperature + 5); // 30 (number context)
console.log(`Temp: ${temperature}`); // "Temp: 25°C" (string context)
यह फीचर ऑब्जेक्ट्स को विभिन्न संदर्भों में स्वाभाविक रूप से व्यवहार करने की अनुमति देता है।