私自身のコマンドラインを構築していて、NodeJSで通常定義されている変数にアクセスしたり、変数を変更したりしたいとします。私はcmd[1]
と呼ばれる別の変数で定義された変数の名前を持っています。適切な時間をかけて研究した結果、定義されたすべての変数を保持するグローバルオブジェクトは存在しないという結論に達しました。別の変数に記述されている変数のデータを返すにはどうすればよいですか?ここに、達成しようとしていることを説明する小さなコードブロックがあります。変数に動的にアクセスする
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);
});
解決策が必要です。
これはスクリプトには適用されませんが、REPLのみに適用されます。 – Monstrum
Hrm。それは奇妙なことです、私は前に使用したと思っていたでしょう(私はちょうど今それをテストした、それは動作しません) – MayorMonty
私は 'var'('変数= 123')なしで変数を定義すると、グローバル( 'global ['variable']')ではありますが、私はどれくらい信頼できるのか、 'var'とはどう違うのでしょうか。 – Monstrum