// IIFE Goal: Create a new scope, return the data just once. All of data inside IIFE will be private as it would inside the fn scope. // Using this way, we don't need to call it separately. And it ensures its called only once. // IIFE is created only once, goal is 'NOT TO REUSE' by executing it multiple times. // Result of running an IIFE is stored, or else it will disappear simply. const ShoppingCart2 = (function(){ const cart = []; const shippingCost = 10; const totalPrice = 237; const totalQuantity = 10; const addToCart = function(product, quantity){ cart.push({product, quantity}); console.log(`${quantity} ${product} added to cart. Shipping cost is ${shippingCost}`); }; const orderStock = function(product, quantity){ console.log(`${quantity} ${product} ordered from supplier`); }; // Need to return something, in order to return a public API. For that, an object is returned containing stuff which needs to be made public. return { addToCart, cart, totalPrice, totalQuantity }; })(); // Everything inside the above module is private to the module. // The above fn returns the object mentioned inside return statement and assign it to the ShoppingCart2 variable mentioned at the start of fn. This IIFE is returned then long ago. // All this is possible because of closures. Hence, addToCart can acccess the cart variable. ShoppingCart2.addToCart('apple', 4); ShoppingCart2.addToCart('pizza', 5); ShoppingCart2; ShoppingCart2.shippingCost; // inaccessible.
अस्वीकृत:
मूल ईएस6 मॉड्यूल और मॉड्यूल पैटर्न के अलावा, जेएस ने अन्य मॉड्यूल सिस्टम का भी समर्थन किया जो जेएस के मूल नहीं थे। पूर्व। एएमडी, कॉमनजेएस
पूर्व। CommonJS मॉड्यूल का उपयोग इसके संपूर्ण अस्तित्व के लिए Node.js में किया जाता है। हाल ही में ES6 मॉड्यूल को Node.js में लागू किया गया है
एनपीएम रिपॉजिटरी पर सभी मॉड्यूल अभी भी कॉमनजेएस मॉड्यूल सिस्टम का उपयोग करते हैं क्योंकि एनपीएम मूल रूप से नोड के लिए था। केवल बाद में, npm संपूर्ण JS दुनिया के लिए रिपॉजिटरी बन गया। इसलिए, हम मूल रूप से CommonJS पर अटके हुए हैं। इसलिए, Node.js में इसके महत्व के रूप में CommonJS पर अभी भी ध्यान देने की आवश्यकता है
ES6 मॉड्यूल की तरह, CommonJS में 1 फ़ाइल 1 मॉड्यूल है।
कॉमनजेएस कोड ब्राउज़र में काम नहीं करेगा, लेकिन यह नोड.जेएस में काम करेगा
ईएस मॉड्यूल अंततः सभी मॉड्यूल सिस्टम को प्रतिस्थापित कर देगा लेकिन अभी हमें कॉमनजेएस का भी उपयोग करने की आवश्यकता है।
एक्सपोर्ट कीवर्ड एक ऑब्जेक्ट है, जो हमारे कोड के साथ-साथ ब्राउज़र में भी परिभाषित नहीं है।
// EXPORT export.addToCart = function(product, quantity){ cart.push({product, quantity}); console.log(`${quantity} ${product} added to cart. Shipping cost is ${shippingCost}`); }; // IMPORT: is similar to ES Modules but would use a require fn. // require is not defined in browser env but its defined in node env as its a part of commonjs const addToCart = require('./shoppingCart.js')
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3