誰かが次の動作を理解するのを手伝ってくれますか? このコールバック内からグローバルを設定できるので、それを変更f
することもできるはずです。これを理解するために、ノードが REPL でコンテキストとグローバルをどのように処理するかを十分に理解していないので、洞察をいただければ幸いです。
なしで REPL を開始するuseGlobal
$ cat test.js
var repl = require('repl');
repl.start({useGlobal:false});
f
次に、2 回続けて設定してみてください。
$ node test.js
> f
ReferenceError: f is not defined
> setTimeout(function(){f=1;}, 0);
> f
1
初めて動作します...もう一度やり直してください:
> setTimeout(function(){f=2;}, 0);
> f
1
は!
最初の実行で設定されます。2番目は影響しません。
(設定useGlobal
:true
期待どおりの動作が得られます。)