JavaScript命名函数自动调用

Cri*_*sty 1 javascript function

如何自动调用命名函数,以便以后调用它?

您可以通过执行以下操作自动调用匿名函数:

(function(){
  console.log('called')
})();
Run Code Online (Sandbox Code Playgroud)

但如果你这样做

(function f(){
  console.log('called')
})();
Run Code Online (Sandbox Code Playgroud)

您不能f()在以后的代码中使用.

或者这个(抛出错误)

function f(){
  console.log('called')
}();
Run Code Online (Sandbox Code Playgroud)

我知道你可以申报f,然后简单地打电话f(),但你可以在申报后立即打电话吗?

Dem*_*gos 6

根据你的想法:首先,你肯定应该使用你的第三个命题,它更清楚,更重要的是:它不会在不需要时创建一个闭包.

无论如何,如果你想执行一个函数并命名它,你应该将它注册到你当前的范围(默认的是窗口对象)

这是一个例子:

(window.myFunction = function(){
    alert("myFunction called")
})(); //triggers the function

window.myFunction() ; //triggers the function
myFunction() ; //triggers the function as well
Run Code Online (Sandbox Code Playgroud)