jQuery की अंदरूनी कामकाज पर निर्भर करता है, लेकिन मैं
obj instanceof jQuery
यह सबसे के साथ जाना चाहते हैं 'जावास्क्रिप्ट रास्ता' ऐसा करने का ध्यान रखें कि खिड़की/फ्रेम सीमाओं के बीच वस्तुओं को पार करते समय यह असफल हो जाएगा!
Tomalak के सुझाव
'jquery' in obj
अभी भी, इस मामले में काम करना चाहिए ताकि आप इसे का उपयोग करना चाहिए अगर आप बहु खिड़की डेटा विनिमय करने की उम्मीद। मैं इसे सामान्य समाधान के रूप में अनुशंसा नहीं करता, क्योंकि 'jquery'
नाम की एक संपत्ति की तलाश करना बहुत विश्वसनीय नहीं है।
in
ऑपरेटर obj
एक आदिम है तो एक त्रुटि भी फेंक देगा। यदि यह व्यवहार अवांछित है, आप के बजाय इन परीक्षणों में से एक विचार कर सकते हैं:
obj && obj.jquery
'jquery' in Object(obj)
मैं दूसरा एक और अधिक आकर्षक लगता है, लेकिन पहले एक संभावना तेजी से हो जाएगा।
Object(obj).hasOwnProperty('jquery')
जाँच हो रही है, असफल के रूप में jQuery केवल अपने प्रोटोटाइप से संपत्ति का वारिस वस्तुओं होगा।
मैं भी जावास्क्रिप्ट में टाइप जांच के लिए constructor
संपत्ति का उपयोग कर दूंगी - यह मज़बूती से jQuery के लिए काम कर सकते हैं, लेकिन constructor
के रूप में सिर्फ वस्तु का एक संपत्ति इन्स्टेन्शियशन समय में निर्माता समारोह के prototype
संपत्ति के द्वारा की ओर इशारा किया है, देखते हैं इस तरह के परीक्षण के साथ गड़बड़ करने के लिए बहुत से तरीके हैं ...
एक तरफ ध्यान दें के रूप में:
jQuery ही obj && obj.jquery
के लिए जाँच करता है। यह एक बार भी instanceof
का उपयोग नहीं करता है। इसके बजाय, यह टाइपिंग जांच के लिए typeof
, बतख-टाइपिंग और toString.call()
के संयोजन का उपयोग करता है, जो काम करना चाहिए जहां instanceof
विफल हो जाएगा।
इसके अलावा, hasOwnProperty()
का भी कभी भी उपयोग नहीं किया जाता है। मुझे यकीन नहीं है कि यह jQuery लाइब्रेरी की कोड गुणवत्ता के बारे में क्या कहता है;)
मेरी पोस्ट से अधिक विस्तृत: +1 और मैं आपकी पोस्ट को – VonC
के रूप में चुना जाने की अनुशंसा करता हूं आपको खिड़की/फ्रेम सीमाओं के उदाहरण की विफलता का उल्लेख करने के लिए मेरा वोट मिला है! –
तो कौन सा सबसे अच्छा है? – Kato