0
グローバルスコープからアクセス可能にされていない限り、IIFEの内部変数にプログラムでアクセスしていないことを認識しています。デベロッパーツールからIIFE変数にアクセスする
たとえば:
(function() {
var a = "Hello"; // a isn't accessible from the outer scope
)();
console.log(a); // a is undefined
しかし:
(function() {
var a = "Hello";
global.a = a;
)();
console.log(a); // Displays "Hello"
いくつかのケースでは、生命維持、またはページ閲覧の全期間中に数秒間実行し続けることは可能です通常はJavaScriptで書かれたゲームの場合、IIFEにゲームループが含まれます。
したがって、IIFE内で宣言されたすべての変数および関数は、ブラウザのメモリに存在する必要がありますが、カプセル化のために開発者コンソールから表示することはできません。
私の質問は、実行中にコードを以前に変更しなくても、それらを表示または操作できる方法はありますか?それらの変数はメモリに存在し、使用されているのでおそらく、ある種のデバッグを通して?
私の質問は主にFirefoxとChrome(Firebugと開発者用ツール)ですが、それを実行する一般的な方法がある場合でもうまくいきます。
これは私が変数を編集(およびコード編集した値を使用しての残りの部分を持っている)することができますか? – pie3636
はい。 (そして、コメントの長さが最小であるので、答えのデモでそれをチェックするのに10秒かかりました)。 – Quentin
ありがとう、シンプルで働きました。 (私はそのデモでチェックしようとしたが、コードを見つけることはできなかった) – pie3636