问题标签 [iife]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
412 浏览

javascript - 一个Javascript函数

请解释以下在 javascript 函数中编写函数的方式:

我理解由于大括号“ () ”,该函数将立即执行,但是将函数括在大括号中是什么意思?

0 投票
1 回答
641 浏览

javascript - 将 IIFE 的公共成员分配给变量与返回对象有什么区别

最近我一直在查看大量的 JavaScript 代码,并且我看到了两种不同的方式来使用分配 IIFE 的“公共”属性。

首先是创建一个变量并将该变量分配给 IIFE 内部的属性,如下所示:

我看到的第二种方法是从 IIFE 返回一个对象,如下所示:

这两种方式之间是否存在根本区别,还是只是偏好问题?我还创建了一个小提琴,因此您可以根据需要运行或更新代码:http: //jsfiddle.net/bittersweetryan/gnh79/3/

0 投票
4 回答
3648 浏览

javascript - 未捕获的类型错误:对象 [object DOMWindow] 的属性“fn”不是函数

我知道如何解决这个错误,但有人告诉我为什么会发生这个错误的全面解释吗?

0 投票
4 回答
41796 浏览

javascript - 一步定义和调用函数

Javascript中有没有一种方法可以定义一个函数并立即调用它,以允许它被重用?

我知道你可以做一次性匿名函数:

或者你可以命名一个函数,然后调用它:

但是有没有一种更简洁的方式来一次性定义和调用一个函数?有点像这两个例子的混合体?

无法做到这一点并不能阻止我做任何事情,但感觉这将是一种很好的表达方式来编写递归函数或需要运行的函数,$(document).ready()但也可以在以后情况发生变化时等等。

0 投票
6 回答
9095 浏览

javascript - 在 JavaScript 中,!function(){}() 比 (function () {})() 有什么优势?

可能重复:
函数前的感叹号有什么作用?

我长期以来一直在 JavaScript 中使用以下自执行匿名函数:

最近,我开始看到以下模式的更多实例(例如,在Bootstrap中):

有人知道第二种模式的优点是什么吗?或者,它只是一种风格偏好?

0 投票
5 回答
8953 浏览

javascript - 在JavaScript中自我声明匿名函数之前的美元符号?

这两者有什么区别:

0 投票
2 回答
2853 浏览

javascript - 在显示模块模式中使用自执行匿名函数

只是想知道这是否是一个好的 JavaScript 实践。

假设我有许多网页都调用初始化函数“init()”,每次加载脚本时在我的模式中使用IIFE来运行该函数是否正确?

0 投票
2 回答
3500 浏览

javascript - IIFE 上下文问题

在以下构造中:

为什么要this引用window对象?IIFE 中的所有内容都应该与全局范围隔离吗?xy函数也是window全局对象的属性吗?

另外,即使我var h = ...在开头使用 put :

this仍然指的是窗口对象——我可以show()从全局范围内调用!怎么会?

0 投票
29 回答
354167 浏览

javascript - JavaScript 中的 (function() { } )() 结构是什么?

我以前知道这是什么意思,但我现在很挣扎...

这基本上是在说document.onload吗?

0 投票
4 回答
2489 浏览

javascript - !function(){ }() 与 (function(){ })()

在查看一些用 Twitter Bootstrap Javascript 编写的代码时,看起来他们正在调用立即调用的匿名函数,如下所示:

我传统上看到同样的事情是通过这种方式完成的:

第一种方式似乎有点hacky,我不确定这样做而不是第二种方式是否有任何好处或理由? 请注意,我了解它是如何工作的,我希望了解他们为什么选择这种方式来做到这一点。