【发布时间】:2016-08-08 09:41:03
【问题描述】:
让我先说我知道它不是以编程方式从外部访问 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"
在某些情况下,IIFE 可能会持续执行几秒钟,或者在整个页面浏览期间执行,通常是在使用 JavaScript 编写的游戏的情况下,其中 IIFE 将包含游戏循环。
因此,IIFE 中声明的所有变量和函数都必须存在于浏览器内存中,但由于封装的原因,它们无法从开发者控制台中显示出来。
我的问题是:有没有什么方法可以在运行时显示或操作它们,而无需事先修改代码?由于这些变量存在于内存中并被使用?也许通过某种调试?
我的问题主要针对 Firefox 和 Chrome(Firebug 和开发人员工具),但如果有通用的方法也可以。
【问题讨论】:
标签: javascript developer-tools iife