【问题标题】:What is the scope of console when working with modules?使用模块时控制台的范围是什么?
【发布时间】:2021-01-05 18:08:41
【问题描述】:

我刚刚了解了 javascript 中的模块 到目前为止,我已经在一个文件中运行了我的代码,因此文件中的所有顶级变量都可以在控制台浏览器中访问。现在,当我开始使用不同的模块(文件)时,无法再从控制台访问文件中的顶级变量。我猜控制台代表一个全局范围(窗口),但我不确定现在从控制台界面可以看到哪些变量?

【问题讨论】:

  • “console”指的是 devtools REPL,而不是 console 对象,对吧?
  • 通过在相应的范围内放置一个断点,那里的所有变量都应该可以访问。
  • @Bergi,是的,我说的是控制台界面。在哪里放置断点?我说的是模块外的代码
  • 在模块外部的代码中,您必须import 模块才能访问它。但是我指的是在模块代码本身中设置一个断点,然后在加载之前,然后当执行在该断点处停止时,您可以从控制台访问所有模块范围的变量。
  • @Bergi,我会坚决做到这一点。谢谢!

标签: javascript scope console global-scope


【解决方案1】:

据我所知,模块中的所有变量都无法从浏览器控制台访问。

您可以在模块中使用此 hack 公开变量:

let foo = { bar: 42 };
window.foo = foo;

然后:

> console.log(foo);

将显示{ bar: 42 }

【讨论】:

    猜你喜欢
    • 2014-11-20
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 2013-03-23
    • 2011-04-21
    • 1970-01-01
    • 2015-11-22
    相关资源
    最近更新 更多