Nehmen wir an, ich baue meine eigene Befehlszeile, und ich hätte gerne Zugriff auf alle Variablen, die normalerweise in NodeJS definiert sind. Ich würde den Namen der Variablen in einer anderen Variablen definiert haben, die cmd[1]
heißen würde. Nach einer anständigen Recherche bin ich zu dem Schluss gekommen, dass es kein globales Objekt gibt, das alle definierten Variablen enthält. Wie kann ich die Daten einer Variablen, die in einer anderen Variablen beschrieben ist, zurückgeben? Hier ist ein kleiner Codeblock zu erklären, was ich zu erreichen bin versucht:Dynamischer Zugriff auf Variablen
var readline = require('readline');
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
prompt: 'CMD> '
});
rl.prompt();
rl.on('line', (line) => {
var commandl = line.trim();
var cmd = commandl.split(' ');
switch(cmd[0]) {
case 'vr':
//here i'd like to log the variable which name is in cmd[1]. if there was a global object i would assume i could just global[cmd[1]].
break;
case 'spit':
//here i'd like to log an object with every defined variables and its live changes
break;
default:
console.log(`${line.trim()}: command not found`);
break;
}
rl.prompt();
}).on('close',() => {
process.exit(0);
});
Es muss eine Lösung sein.
Dies gilt nicht für Skripte, nur REPL. – Monstrum
Hrm. Das ist merkwürdig, ich hätte gedacht, dass ich es vorher benutzt habe (ich habe es gerade getestet; es funktioniert nicht) – MayorMonty
Ich lese, wenn ich nur Variablen ohne 'var' (' variable = 123') definiere, würde es angezeigt werden in global ('global ['variable']') aber ich bin mir nicht sicher, wie zuverlässig das ist und wie unterschiedlich es zu 'var' ist. – Monstrum