जावास्क्रिप्ट में क्लोजर के माध्यम से मॉड्यूल में ऑब्जेक्ट का एक्सपोर्ट
मान लीजिए कि हमारे पास निम्नलिखित मॉड्यूल है:
;(function() {
function func1() {
alert('module funcion');
}
function func2() {
alert('module funcion');
}
function func3() {
alert('module funcion');
}
})();
मान लीजिए कि हम तीनों फ़ंक्शन को बाहर एक्सपोर्ट करना चाहते हैं। इस स्थिति में, मॉड्यूल के बाहर अतिरिक्त फ़ंक्शन नामों को बनाने से बचने के लिए, सभी फ़ंक्शन को एक ऑब्जेक्ट में लिखना और इस ऑब्जेक्ट का एक्सपोर्ट करना बेहतर होगा:
;(function() {
function func1() {
alert('module funcion');
}
function func2() {
alert('module funcion');
}
function func3() {
alert('module funcion');
}
window.module = {func1: func1, func2: func2, func3: func3};
})();
चूंकि कुंजियों और वेरिएबल के नाम मेल खाते हैं, इसलिए फ़ंक्शन वाले ऑब्जेक्ट को सरल बनाया जा सकता है:
;(function() {
function func1() {
alert('module funcion');
}
function func2() {
alert('module funcion');
}
function func3() {
alert('module funcion');
}
window.module = {func1, func2, func3};
})();
हम दूसरे तरीके से भी जा सकते हैं। फ़ंक्शन को परिभाषित करते समय ही फ़ंक्शन को ऑब्जेक्ट में लिखेंगे, इस तरह:
;(function() {
let module = {};
module.func1 = function() {
alert('module funcion');
}
module.func2 = function() {
alert('module funcion');
}
module.func3 = function() {
alert('module funcion');
}
window.module = module;
})();
निम्नलिखित मॉड्यूल दिया गया है:
;(function() {
let str1 = 'module variable';
let str2 = 'module variable';
let str3 = 'module variable';
function func1() {
alert('module funcion');
}
function func2() {
alert('module funcion');
}
function func3() {
alert('module funcion');
}
function func4() {
alert('module funcion');
}
function func5() {
alert('module funcion');
}
})();
पहले पांच फ़ंक्शन और पहले दो वेरिएबल वाला ऑब्जेक्ट बाहर एक्सपोर्ट करें।