Intégrer des modules JavaScript
P粉745412116
P粉745412116 2023-09-09 21:45:59
0
1
554

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;

module1Comprend 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/

P粉745412116
P粉745412116

répondre à tous(1)
P粉254077747

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 :

var module2 = {};
module2.fct1 = function() { return this.array[0]; };
module2.fct2 = function() { return this.array[1]; };
module2.fct3 = function() { return this.array[2]; };

ou plus simplement :

var module2 = {
  fct1() { return this.array[0]; },
  fct2() { return this.array[1]; },
  fct3() { return this.array[2]; },
};
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal