![]() |
1
1
在我的代码中,几乎所有使用IIFE的常见原因都被块范围的变量所代替。
我在实际代码中看到的一个用途是模拟顶级
我认为生命存在的其余原因是当你想要一个函数的优点,比如
但是,如果函数中的代码从访问父作用域变量中受益匪浅,那么它确实希望是内联的,这就为IIFE结合在单独的函数中的优势和对父作用域的内联访问创造了一个可能的理由。 现在,实际上,大多数/所有这些情况都可以通过一点重构来解决,要么在本地作用域中定义命名函数(这样它仍然可以访问父作用域变量),要么只是将东西从父作用域传递给命名函数,这样它就可以以这种方式访问它们,事实上,这也是我们在其他语言中所做的。这样做的唯一代价是多了一个本地函数名(如果要隐藏它,甚至可以对其进行本地作用域)。 |
![]() |
2
3
对于一个普通块不能实现的生命周期来说,一个好处是它的输出能够分配给
假设我们想把
因为
也就是说,如果有人 extract till you drop ,有些人可能会说,为了避免IIFEs并声明一个独立的函数,然后可以导入并调用该函数:
|
![]() |
Udders · 使用另一个数组中的值按索引从数组中删除 2 年前 |
![]() |
Matt · 获取数组长度并推入每个对象 2 年前 |
![]() |
Rahmouni Rabii · 尝试访问数组中的对象时未定义 2 年前 |
![]() |
dapidmini · 未捕获的承诺嵌套异步函数承诺错误处理 2 年前 |
![]() |
Zeeps Wear · 如何按键对对象进行分组? 2 年前 |
![]() |
Rachel · 如何按ID从JSON对象数组中删除数组元素 2 年前 |
![]() |
minsu123 · 如何解析react中的单个引用? 2 年前 |