假設我正在構建自己的命令行,並且希望能夠訪問甚至更改任何通常在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'('variable = 123'),那麼它會顯示在全球('全球['變量']'),但我不知道這是多麼可靠,它是多麼不同'var'。 – Monstrum