为什么箭头功能在 chrome 扩展内容脚本中不起作用?

Why arrow function is not working in chrome extension content script?

在我的 chrome 扩展的内容脚本中,以下代码不起作用:

var myFunction = () => {
  console.log("sending msg");
  chrome.runtime.sendMessage({ action: "myAction" });
}

但是当我将箭头函数转换为经典 JS 函数时,它起作用了。

function myFunction() {
  console.log("sending msg");
  chrome.runtime.sendMessage({ action: "myAction" });
}

为什么箭头功能不起作用?

我猜你遇到了提升问题。常规函数调用可以在代码中的任何位置,而 const myFunction = ... 只能在其声明后调用。

工作代码示例:

myFunction();

function myFunction() {
  console.log('Yay');
}

失败代码示例:

myFunction(); // TypeError, myFunction is undefined at this point

var myFunction = () => console.log('Yay');