首页 > 解决方案 > if (typeof myFunction !== 'function') - 为什么它在 Safari 中不起作用?

问题描述

我有这段代码可以在 Chrome 中运行,但在 Safari 中无法正常运行:

if (typeof myFunction !== 'function') {

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

  myFunction();

} else {
  console.log('myFunction ALREADY DEFINED o_O!');
}

当我在 Chrome 中运行此代码时,它会记录“myFunction invoked”。

当我在 Safari 中运行它时,它会记录“myFunction ALREADY DEFINED o_O!”

我想让 typeof 在 Safari 中的工作与在 Chrome 中相同。我怎样才能实现它?

标签: javascriptsafari

解决方案


只需使用以下代码:

if (typeof myFunction !== 'function') {

  let myFunction = function() {
    console.log('myFunction invoked');
  }

  myFunction();

} else {
  console.log('myFunction ALREADY DEFINED o_O!');
}

let关键字将解决您的问题


推荐阅读