【发布时间】:2016-10-27 13:45:42
【问题描述】:
我发现了一种定义函数的有趣方法:
! function() {
function myFunction() {
return returnValue;
}
}();
但是,这个功能不能直接从浏览器控制台调用,怎么实现呢?
【问题讨论】:
-
它是匿名的——你不能。如果你需要随时调用它,你需要定义它。
-
benalman.com/news/2010/11/… - 关于 IIFE 的有趣读物
-
您需要先将其引用分配给一个变量。
-
你不能调用它,因为它的作用域是你的外部函数。这就是你这样做的原因之一,以阻止更高层次的污染,他们不需要知道的函数/变量。这听起来真的很像XY Problem - 你想实际实现什么?
-
匿名函数是无名的,所以如果你不将它们分配给 var,它们将被执行并且没有句柄。它们非常适合范围控制和一次性执行。否则,您必须返回某个时间并将其分配给 var 句柄或类似的东西。
标签: javascript anonymous-function web-console