【问题标题】:Expose Function to Browser's JS Console向浏览器的 JS 控制台公开函数
【发布时间】:2021-06-13 17:07:11
【问题描述】:

作为默认闭包一部分的普通顶级函数如何在浏览器中暴露给 JS 控制台(出于调试原因)?

// default.js
function iWantToCallThisFunction() {
  console.log("test successfull");
}

2014 年的答案似乎不再有效:https://stackoverflow.com/a/9054881/6204346

至少当前的 Chrome 找不到该功能,默认为undefined

export 标记函数似乎没有什么区别。保护window 中的功能可能是可能的,但不方便。有没有更好的办法?

【问题讨论】:

  • 尝试window.iWantToCallThisFunction = function() { console.log("test successfull"); } 并致电window.iWantToCallThisFunction()var iWantToCallThisFunction= function() { console.log("test successfull"); }iWantToCallThisFunction()
  • 从你的文字来看,尤其是“导出”部分,你显然是在一个 esm 中,这不是全局范围。你可以做一些非常肮脏的把戏,但更应该把它添加到window,正如你已经注意到的那样。
  • 不,它实际上只是顶级 es6 代码。没有模块没有其他东西。出口只是一个测试。我想了解那些“非常肮脏的技巧”,因为它只是出于调试原因。

标签: javascript


【解决方案1】:

这很奇怪,它显示为未定义。如果您想查看函数的内容(并且它已经加载并声明),只需在末尾键入 iWantToCallThisFunction 即可。如果要调用该函数,只需键入iWantToCallThisFunction() 括号。您也可以尝试将函数设置为变量。我认为这是因为当您进入 JavaScript 控制台时,实际上并没有创建该函数。确保连接了正确的 JavaScript 文件,并且没有错误。如果文件中有其他东西,那可能会干扰这个函数的创建,所以可以自己在一个空白文件中尝试。

【讨论】:

  • 函数在里面,可以通过JS内部执行。只是控制台的范围不知道而已。
猜你喜欢
  • 2014-05-12
  • 2022-08-03
  • 2018-01-31
  • 2013-01-25
  • 2018-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多