instanceof ऑपरेटर जांचता है कि क्या किसी कंस्ट्रक्टर की प्रोटोटाइप प्रॉपर्टी किसी ऑब्जेक्ट की प्रोटोटाइप चेन में कहीं दिखाई देती है। सरल भाषा में, यह जांचता है कि कोई वेरिएबल किसी निश्चित प्रकार का है या नहीं। लेकिन इसमें कुछ चेतावनी हैं। आइए कुछ उदाहरण देखते हैं।
प्रिमिटिव्स
स्ट्रिंग्स और नंबर प्रिमिटिव मान हैं, ऑब्जेक्ट्स नहीं और इसलिए उनका [[Prototype]] नहीं होता, इसलिए यह केवल तभी काम करेगा जब आप उन्हें रेगुलर ऑब्जेक्ट्स में रैप करें।
उदाहरण
console.log(1 instanceof Number) console.log(new Number(1) instanceof Number) console.log("" instanceof String) console.log(new String("") instanceof String)
आउटपुट
false true false true
कंस्ट्रक्टिबल फंक्शन्स
फंक्शन्स जो अपने ऑब्जेक्ट्स लौटाते हैं (JS क्लासेस) उनके ऑब्जेक्ट्स को instanceof ऑपरेटर का उपयोग करके जांचा जा सकता है।
उदाहरण
function Person(name) { this.name = name } let john = new Person("John"); console.log(john instanceof Person)
आउटपुट
true
इनहेरिटेंस
JS प्रोटोटाइपल इनहेरिटेंस का समर्थन करता है, इसलिए यदि आप हायरार्की में किसी भी क्लास के लिए instanceof चेक करते हैं, तो यह true लौटाएगा।
उदाहरण
class Person {} class Student extends Person { constructor(name) { super() this.name = name } } let john = new Student("John"); console.log(john instanceof Person) console.log(john instanceof Student)
आउटपुट
true true