javascript - What is the functional difference between these two different Module pattern syntaxes -


मैं यह वाक्यविन्यास हर जगह देखता हूँ:

  var mod = (function () {var pvtvar ; Var pvtfunc = function () {}; // एक ऑब्जेक्ट आंशिक रिटर्न वापस आना {पबवार: 'जो भी', पबफन्क: फंक्शन () {}};} ());  

मैं हाल ही में इस वाक्य रचना में आया था:

  // पहले खाली वस्तु बनायें var mod = {}; (फ़ंक्शन (mod) {var pvtvar; var pvtfunc = function () {}; // mod ऑब्जेक्ट आर्गुमेंट mod.pubvar = 'whatever'; mod.pubfunc = function () {}}} (mod)); // पास ऑब्जेक्ट आईआईएफई  

मुझे पता है कि वे दोनों काम करते हैं, और मैं लगता है कि मैं पूरी तरह से समझता हूं, मैं सिर्फ यह सुनिश्चित करना चाहता हूं कि मुझे याद नहीं है कुछ भी ... समरूप सदस्यों को देखते हुए आप समान वस्तुओं के साथ समाप्त होते हैं, यह सिर्फ इतना है कि दूसरे उदाहरण में mod एक दूसरे के अंश के लिए वैश्विक दायरे के भीतर एक खाली वस्तु का संदर्भ देता है, जबकि पहले उदाहरण में < कोड> मोड केवल आईआईएफई द्वारा इसका मूल्य वापस आने के बाद केवल पूर्ण वस्तु का संदर्भ देता है

अतः, क्या मैं यह सोचकर सही हूं कि केवल अंतर उस समय की (बहुत छोटी) राशि है जो दूसरा ऑब्जेक्ट खाली वस्तु के रूप में रहता है? और, मेरा अनुवर्ती प्रश्न: क्या आप दूसरे सिंटैक्स का उपयोग करते हैं, और क्यों?

आप सही हैं । आपके उदाहरण में, पहला सिंटैक्स क्लीनर और अधिक पठनीय है।

आप दूसरे सिंटैक्स का उपयोग करते हैं जब आप किसी रिक्त ऑब्जेक्ट से मॉड्यूल में कुछ और से गुजरना चाहते हैं और बदले में एक संवर्धित ऑब्जेक्ट प्राप्त करना चाहते हैं।


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 -