जावास्क्रिप्ट में ऑब्जेक्ट गुणों और विधियों के अस्तित्व की जाँच करना

मुझे यह निर्माण लाइब्रेरी के जावास्क्रिप्ट कोड में मिला:



if ('is_public' in profile) {

...

}








बहुत दिलचस्पी है कि यह कैसे काम करता है। उससे पहले, मैंने 'ऑपरेटर' का उपयोग केवल पुनरावृत्ति के लिए किया था, लेकिन यहाँ इस तरह की जाँच दिलचस्प है। इधर-उधर अफरा-तफरी मचने के बाद, मैंने अपने लिए खोजा कि 'इन' ऑपरेटर का उपयोग किसी ऑब्जेक्ट के ऑब्जेक्ट, ऑब्जेक्ट प्रॉपर्टी, और किसी ऐरे में किसी तत्व के इंडेक्स की जांच के लिए भी किया जा सकता है। नीचे कुछ उदाहरण दिए गए हैं:



var Test = function() { return this; };



Test.prototype.myFunc = function() {};



var testInstance = new Test();



console.info('myFunc' in testInstance); // will return 'true'

console.info('myFunc2' in testInstance); // will return 'false'



var myObject = {test: 1};



console.info('test' in myObject); // will return 'true'

console.info('test1' in myObject); // will return 'false'



var myArray = [4,3,1];



console.info(1 in myArray); // will return 'true'

console.info(3 in myArray); // will return 'false'








इस तरह के चेक से बेहतर क्या है जैसे चेक करना?



var myArray = [4,3,1];



if (myArray[3] != undefined) {

...

}








इसका उत्तर सरल है, क्योंकि आपके सरणी में इस सूचकांक के तहत एक तत्व शामिल हो सकता है, लेकिन इस तत्व का मूल्य 'अपरिभाषित' होगा, जिस स्थिति में आप इसके अस्तित्व के बारे में सुनिश्चित नहीं हो सकते। ऑपरेटर 'में' एक तत्व / संपत्ति / विधि के अस्तित्व की पुष्टि करता है। शायद आप इसे अक्सर उपयोग नहीं करेंगे या इसका उपयोग बिल्कुल नहीं करेंगे, लेकिन मुझे लगता है कि यह जानना बहुत अच्छा होगा।



All Articles