Dans mon code, un tableau est déclaré à partir d'un module importé. Les fonctions liées à ce module sont importées du deuxième module. Voici une version simplifiée de mon code :
Le premier module contenant des tableaux
let module1 = {}; module1.array = [10, 20, 30];
Deuxième module contenant les fonctions
var module2 = {}; module2.fct1 = () => { return array[0]; }; module2.fct2 = () => { return array[1]; }; module2.fct3 = () => { return array[2]; };
Je souhaite fusionner ces deux modules en une seule entité :
module1.fct1 = module2.fct1; module1.fct2 = module2.fct2; module1.fct3 = module2.fct3;
module1
Comprend désormais des tableaux et des fonctions
{ array: [10, 20, 30], fct1: () => { return array[0]; }, fct2: () => { return array[1]; }, fct3: () => { return array[2]; } }
Cependant, lorsque j'appelle la fonction, le tableau semble sortir du cadre de la fonction :
console.log (module1.fct1())
J'ai eu l'erreur suivante :
Erreur de référence non détectée : le tableau n'est pas défini
Si je crée un seul module contenant des tableaux et des fonctions dans le même fichier, cela fonctionne.
Ma question est la suivante : existe-t-il un moyen en JavaScript de fusionner deux modules. Mon objectif ultime est de transmettre le module fusionné à une autre fonction.
Ceci est un lien JSFiddle : https://jsfiddle.net/Imabot/rxsfvgda/4/
On dirait que vous vous attendez
module2
的部分是可以在任何其他(模块)对象上调用的方法,这些对象具有.array
属性。为此,你需要通过this.array
à accéder à un tableau et que vous devez utiliser la syntaxe de la méthode au lieu des fonctions fléchées :ou plus simplement :