Hallo Rolf,
ich bin jetzt vollkommen verwirrt.
Also meine Fragen:
Eine function kann Argumente erhalten. einfache Variablen werden dabei transportiert, bei ARRAYs wird nur die Adresse in das Argument transportiert. So richtig?
Jetzt Modul:
eine function in einem Modul erreiche ich so.
direct1 = require("./direct.js");
direct1.m(arg1,arg2,Prom,D,M,N,Tfile,ERGEB,FEHLER2);
Alle Argumente sind ARRAYs. Wenn diese ARRAYs verändert werden, bedeutet das, das damit auch das ARRAYs im aufrufendem Modul verändert wird, denn im aufgerufenen Module ist nur die ADRESSE bekannt. So richtig ?
Von einer Datei habe ich ein ARRAY geholt und dem ARRAY D zugewiesen:
fdNr = fs.openSync('DJSN.txt', 'r')
data = fs.readFileSync(fdNr,{ encoding: 'utf8', flag: 'r' });
if(t)
console.log("JSON.parse(data) ",JSON.parse(data))
D=(JSON.parse(data))
if(t)
console.log("D ",D)
Tatsächlich ist jetzt das ARRAY aus DJSN.txt in D
ABER im aufrufendem Modul ist D NICHT verändert.Nur durch:
var d;
d=D
module.exports.d=d
im aufrufendem Modul:D=direct1.d;
Also nichts ist mit Adresse, sondern das ARRAY D wird aus dem aufrufendem Modul in den aufgerufenen Modul transportiert,d.h in das Argument D. So weit so richtig?
Es wird noch verrückter: In dem aufgerufenem Modul verändere ich D
D[0]=irgendwas und siehe da das ARRAY D im aufrufendem Modul ist mit verändert.
Also doch AdressÜbermittlung
oder: wird nur die Gesamtveränderung des ARRAYs D im aufgerufenen Modul gesperrt. Unterarrays können jedoch verändert werden ohne module.exports
Ich hoffe, ich habe den Sachverhalt klar dargestellt und bin gespannt auf die Antwort
Effel