gpt4 book ai didi

javascript - 带名字的 IIFE 的实际用途是什么?

转载 作者:行者123 更新时间:2023-11-30 06:59:23 25 4
gpt4 key购买 nike

我熟悉执行函数的 IIFE 方式:

(function(){
//stuff
}());
//immediately invoked, parsed as an expression

通过这种方式,我可以像声明任何其他对象一样为函数分配名称:

var theFunction = function(){
//stuff
}
//can be executed with theFunction();

但是今天我看到这两者结合起来是这样的:

var theFunction = (function(){ 
//stuff
}());

这是做什么的,或者它能提供什么优势?

最佳答案

你在那里展示的不是一个有名字的 IIFE(它确实存在)。它是一个保存 IIFE 的返回值的变量。


一个真正的带名字的 IIFE 应该是这样的:

(function myName (){
// code here...
}());

在 IIFE 上使用名称有两个方面:

  1. 供自己引用。如果函数想要调用自身(递归),它可以使用该名称(而不是 arguments.callee,它在严格模式下不起作用)。

  2. 它有助于调试,因为它会在堆栈跟踪中显示函数的名称。

关于javascript - 带名字的 IIFE 的实际用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18365801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com