问题标签 [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 投票
1 回答
204 浏览

javascript - JavaScript IIFE

我承认我在 JavaScript 方面还很不成熟,而且每次我认为我得到它的时候,一些奇怪的曲线球都会让我马上离开,这并没有帮助。

我有一个类似这样的 js 文件:

真正让我困惑的是期望能够调用事物的正确方法。我想我真的不了解事情的范围,而且我很难说实话。

如果我想从页面调用 myFunction 是否应该看起来像这样?

我已经阅读了有关范围的内容,但显然在我对这一切的理解中仍然缺少一些非常基本的东西。

从我看到的示例中,我看不到其他似乎必须在函数名称前面加上iife名称才能从页面执行事物的示例。

任何好的推荐阅读也将不胜感激。

0 投票
1 回答
93 浏览

javascript - JavaScript IIFE 使用外部本地化/语言代码

我正在尝试使用 IIFE 和语言文件来使我的代码本地化。问题是 IIFE 一直说语言代码中的变量不存在。我试图弄清楚为什么,如果有人可以向我解释一下为什么以及我应该如何去做,那就太棒了!

例子

IIFE-

语言代码-

尽管日志记录不起作用并且 lang 是“未定义的”,但我已经尝试了很多方法来使其正常工作,尽管我尝试过的任何东西都不足。

这是一个举个例子的小提琴,我使用 jQuery CDN 进行测试

0 投票
1 回答
1115 浏览

javascript - Javascript IIFE 作为对象的属性(方法)

我正在尝试使用 IIFE 作为一种方法(这可能是错误的)。

为什么 ?因为,我正在尝试实现代理设计模式。

在 adobe extendscript 中,有一个“app”对象可以访问文档等,例如 -

现在,我想在“app”周围放置一个代理。所以我创建了一个代理对象 -

但是现在,这就是我必须访问它的方式 -

但这就是我想要访问它的方式 -

所以我读到了关于 IIFE 的文章,最后做了这个——

正如预期的那样,AppProxy.activeDocument会在定义AppProxy时自动调用,即使在它达到var length = AppProxy.activeDocument.length 之前

那么,当 AppProxy 被定义为对象文字时,如何防止这种情况发生?我的要求有解决方法吗?

谢谢。

0 投票
3 回答
5353 浏览

javascript - 我应该使用 IIFE 还是 window onload 来初始化?

以下两个代码片段都有效:

在 js 文件中使用 IIFE:

在 html 文件中调用initialize()窗口加载事件:

一种比另一种更好的方法吗?在性能或其他方面?就目前而言,我更倾向于向窗口对象添加事件侦听器,因为它更具可读性。

0 投票
2 回答
2379 浏览

javascript - Javascript 为什么要在 IIFE 中包装变量或构造函数?

我今天看到了这样的东西

我不明白这一点与仅仅摆脱 iife 包装器相比有什么意义。

0 投票
1 回答
49 浏览

javascript - 我在哪里可以找到更多关于一种 javascript 语法的信息?

javascript中这种类型的语法是什么?

和这个

我想搜索以了解它们,但我不知道我在搜索什么。

此外,如果有人可以提供有用的资源的链接,那就太好了。

0 投票
0 回答
56 浏览

javascript - JavaScript:为什么要使用 IIFE 来定义对象示例(又名“类”)?

我一直在玩 TypeScript,我注意到它遵循 JS 的特定风格。

以下打字稿:

像这样生成 JS:

IIFE 有什么好处?为什么我需要将我的方法附加到新范围内的原型?

如果我继续这样做,我会失去什么吗:

(就像我一直做的那样)而不是?

0 投票
1 回答
216 浏览

javascript - 使用 iife 的 Javascript 对象继承

我正在将 IIFE 用于 HTML5/CSS3/JS 网络小部件游戏。为此,我想创建专门的异常对象,它们是单个对象的后代。我在尝试不可能的事情吗?

到目前为止的代码是

当我查看控制台时,我得到了undefined: blahRefException继承原型函数也是如此,但不是命名空间变量title。我错过了什么吗?

0 投票
2 回答
269 浏览

javascript - 为什么不是 (function(){}()); 工作,但 window.onload 是?

前几天我在试验 javascript,想看看某个函数是否可以工作。所以我做了我的HTML:

(当然,在实际文档中我已经设置了我的文档类型并创建了 html 标签等等)

然后写了我的javascript(正确链接到头部):

现在,我打开了我的 html,有点困惑为什么我<p>没有包含任何文本,所以我想也许IIFE没有在页面加载时运行,所以我尝试了其他方法:

再次打开,发现当时 javascript 运行良好;控制台像往常一样打印了“Hi There”。我现在有点困惑,所以我尝试了:

这一切都很完美!该段落包含“您好”,就像它第一次应该(嗯,我想是这样)一样!

谁能解释这种荒谬的行为?为什么不(function(){/*stuff*/}());工作.innerText

0 投票
4 回答
3395 浏览

javascript - JavaScript 匿名函数表达式 vs IIFE

遇到了一些在表达式中使用 IIFE 而不仅仅是普通函数的代码。

通常我会这样写:

IIFE的原因是什么?我唯一能想到的是,IIFE 可能custom_type在开始时只分配一次变量,而第二次可能会在每次引用变量时继续检查更新的类型。