当前位置:  开发笔记 > 编程语言 > 正文

保存对立即调用的函数的引用

如何解决《保存对立即调用的函数的引用》经验,为你挑选了1个好方法。

您似乎无法立即将调用的函数表达式设置为变量:

var foo = function() {
  alert();
}(); // Immediately alerts 

foo(); // Returns "Uncaught TypeError: foo is not a function"

foo原来是未定义的 - 但为什么呢?有没有办法实际保存对立即调用函数的引用?



1> zzzzBov..:

您似乎无法立即将调用的函数表达式设置为变量

那是不对的

foo 原来是未定义的 - 但为什么呢?

您提供的代码将IIFE 的返回值分配给foo.

如果你有:

var foo = function() {
  alert();
  return 5;
}();

foo会有一个值5.

有没有办法实际保存对立即调用函数的引用?

是的,但这不是组织代码的好方法:

var foo;
(foo = function () {
  alert('works just fine');
})();

为什么在需要声明函数时需要立即调用表达式:

function foo() {
  alert();
}

然后调用函数:

foo();

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有