how does object behave here in javascript? -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 6 जवाब

मुझे पता है कि हम कर सकते हैं ' टी सीधे एक वस्तु की तुलना करें कि अन्य के बराबर है {} == {} झूठी बदलेगी।

  var b = {}; बी === ऑब्जेक्ट (बी); // सच ब === ऑब्जेक्ट ({}); // झूठी  

हालांकि, ऊपर के कोड मुझे भ्रमित करते हैं, क्यों b === वस्तु ({}) वापसी झूठी? कोई यह बता सकता है?

यह वास्तव में

ऑब्जेक्ट में है निर्माता दिए गए मान के लिए ऑब्जेक्ट आवरण बनाता है। यदि मान रिक्त या अपरिभाषित है, तो यह एक रिक्त ऑब्जेक्ट बनायेगा और लौटाएगा, अन्यथा, यह एक प्रकार का ऑब्जेक्ट वापस करेगा जो कि दिए गए मान से मेल खाती है। यदि मान एक वस्तु पहले से ही है, तो वह मूल्य लौटाएगा।

जैसा कि आप पहले से जानते हैं, दो ऑब्जेक्ट समान नहीं हैं

  {} == {} // false  

लेकिन जब आप किसी ऑब्जेक्ट को ऑब्जेक्ट कन्स्ट्रक्टर में पास करते हैं, तो वह सटीक एक ही ऑब्जेक्ट देता है, न कि एक नया।

  var b = {}; बी === ऑब्जेक्ट (बी); // सच  

यहां आप ऑब्जेक्ट कन्स्ट्रक्टर को उसी ऑब्जेक्ट को पास करते हैं जो आप फिर से तुलना कर रहे हैं, और ऑब्जेक्ट कन्स्ट्रक्टर उस ऑब्जेक्ट को वापस करेगा, और ऑब्जेक्ट की तुलना करके स्वयं के विरुद्ध रिटर्न करेगा सच । दूसरे शब्दों में, उपर्युक्त b === b के समान है।
इस पर चल रहा है

  b === वस्तु ({}); // गलत  

यहां आप एक खाली नई ऑब्जेक्ट में गुजर रहे हैं, उस ऑब्जेक्ट को लौटा दिया जाएगा, लेकिन यह b जैसा ही ऑब्जेक्ट नहीं होगा, और दो अलग-अलग ऑब्जेक्ट कभी भी बराबर नहीं होते हैं, इसलिए false


Comments

Popular posts from this blog

java - org.apache.http.ProtocolException: Target host is not specified -

java - Gradle dependencies: compile project by relative path -

ruby on rails - Object doesn't support #inspect when used with .include -