In meinem Code wird ein Array aus einem importierten Modul deklariert. Funktionen, die sich auf dieses Modul beziehen, werden aus dem zweiten Modul importiert. Hier ist eine vereinfachte Version meines Codes:
Das erste Modul, das Arrays enthält
let module1 = {}; module1.array = [10, 20, 30];
Zweites Modul mit Funktionen
var module2 = {}; module2.fct1 = () => { return array[0]; }; module2.fct2 = () => { return array[1]; }; module2.fct3 = () => { return array[2]; };
Ich möchte diese beiden Module zu einer Einheit zusammenführen:
module1.fct1 = module2.fct1; module1.fct2 = module2.fct2; module1.fct3 = module2.fct3;
module1
Enthält jetzt Arrays und Funktionen
{ array: [10, 20, 30], fct1: () => { return array[0]; }, fct2: () => { return array[1]; }, fct3: () => { return array[2]; } }
Wenn ich jedoch die Funktion aufrufe, scheint das Array außerhalb des Funktionsbereichs zu liegen:
console.log (module1.fct1())
Ich habe die folgende Fehlermeldung erhalten:
Unabgefangener Referenzfehler: Array ist undefiniert
Wenn ich ein einzelnes Modul mit Arrays und Funktionen in derselben Datei erstelle, funktioniert es.
Meine Frage ist: Gibt es in JavaScript eine Möglichkeit, zwei Module zusammenzuführen? Mein ultimatives Ziel ist es, das zusammengeführte Modul an eine andere Funktion zu übergeben.
Dies ist ein JSFiddle-Link: https://jsfiddle.net/Imabot/rxsfvgda/4/
看起来你期望
module2
的部分是可以在任何其他(模块)对象上调用的方法,这些对象具有.array
属性。为此,你需要通过this.array
访问数组,并且需要使用方法语法而不是箭头函数:或者更简单的写法: