Export d'un objet dans les modules via les fermetures en JavaScript
Supposons que nous ayons le module suivant :
;(function() {
function func1() {
alert('module funcion');
}
function func2() {
alert('module funcion');
}
function func3() {
alert('module funcion');
}
})();
Supposons que nous voulions exporter les trois fonctions vers l'extérieur. Dans ce cas, afin de ne pas multiplier les noms de fonctions superflus en dehors du module, il est préférable d'enregistrer toutes les fonctions dans un seul objet et d'effectuer l'exportation de cet objet :
;(function() {
function func1() {
alert('module funcion');
}
function func2() {
alert('module funcion');
}
function func3() {
alert('module funcion');
}
window.module = {func1: func1, func2: func2, func3: func3};
})();
Puisque les noms des clés et des variables coïncident, l'objet avec les fonctions peut être simplifié :
;(function() {
function func1() {
alert('module funcion');
}
function func2() {
alert('module funcion');
}
function func3() {
alert('module funcion');
}
window.module = {func1, func2, func3};
})();
On peut aussi procéder autrement. Nous enregistrerons les fonctions dans l'objet immédiatement lors de la déclaration de la fonction, comme ceci :
;(function() {
let module = {};
module.func1 = function() {
alert('module funcion');
}
module.func2 = function() {
alert('module funcion');
}
module.func3 = function() {
alert('module funcion');
}
window.module = module;
})();
Voici le module suivant :
;(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');
}
})();
Exportez vers l'extérieur un objet avec les cinq premières fonctions et les deux premières variables.