问题标签 [self-invoking-function]

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 投票
2 回答
45 浏览

javascript - 当我尝试访问变量时,为什么我的 javascript 模块返回未定义?

我有一个 javascript 模块,可以将数据与 dom 巧妙地分开,并为其dataui对象返回一个公共 api:

现在,当我尝试访问这样的数据时:

它返回undefined。这种自调用函数模式我做错了什么?我该如何解决?

0 投票
3 回答
11281 浏览

javascript - 自调用函数 jQuery

我注意到在某些地方,jQuery 代码被包装在一个自调用函数中,如下所示。为什么要这样做,在什么情况下这是有用的,在什么情况下是不必要的样板?

0 投票
1 回答
179 浏览

javascript - javascript 中的内存效率更高的 IIFE 是什么?

我想调用一个匿名的自执行函数,只有当 dom 准备好时,使用内存效率更高的技术。而且,我想使用 window 和 window.jQuery 全局对象的本地范围版本来进行优化(加载本地范围比全局更快)。

那么,这种模式正确吗?

我不确定我是否做错了什么......

提前致谢!

0 投票
1 回答
2048 浏览

javascript - 使用闭包和自调用函数制作计数器

我想知道为什么这段代码不起作用,

这段代码可以。唯一的区别是使函数自调用而不是在 console.log() 中调用它

我对JS很陌生,所以请原谅我的菜鸟。谢谢!

0 投票
2 回答
737 浏览

javascript - 如何在获取调用函数返回的内容时将局部变量传递给回调?

我在循环中遇到异步回调问题。我在 Window 的一个文件对象上调用一个异步函数以获取有关它的更多信息 ( getImagePropertiesAsync()) 并将这些信息保存到数据库中,以便更快地进行进一步访问。我需要该函数返回的值以及i调用时的值getImagePropertiesAsync()

由于异步执行,成对的三个值以错误的顺序保存。在我写这篇文章的时候,我已经担心这个问题了。下次试试。

现在,我得到了i正确的,但props未定义。(逻辑上)。

我怎么可能i在保存的同时正确获得props?提前致谢!

0 投票
1 回答
196 浏览

javascript - 自调用函数+闭包以改善由于垃圾收集而导致的挂起

我正在尝试确定这种模式是否有助于最大限度地减少我的 Javascript 游戏中的垃圾收集。

我有一个在我的主游戏循环中调用的函数,它的定义如下:

这些变量最终成为对代码中其他地方的对象(或数值)的引用。

我正在尝试降低垃圾收集事件的频率和严重性,因为它们会导致帧速率卡顿。

重构为将变量存储在闭包中的自调用函数会导致变量被重用而不是为每个函数调用重新分配吗?它对GC有什么明显的影响吗?

注意,这些不是在方法中分配的对象;只是对其他对象或原语的引用。

我试过了,如果有的话,它似乎让事情变得更糟。似乎 GC 的执行频率更高,并且每次对性能的影响大致相同(并且收集的内存量与以前大致相同)。

我在这里遗漏了什么可能会降低性能的东西吗?这是否会表现出预期的行为(分配一次变量并重新使用它们而不会对它们进行垃圾收集?)还是有其他事情发生?

0 投票
1 回答
252 浏览

invoke - Vala 是否支持自调用?

Vala 有什么方法支持自我调用?使用类还是使用方法?

Javascript 支持如下所示的自调用。这就是我要找的。

我正在尝试将一个类加载到哈希图中以进行动态加载。

0 投票
2 回答
845 浏览

javascript - 一个脚本中的多个自调用函数出错:分号的情况

在某些情况下,在单个 JavaScript 文件中有多个自调用函数会引发错误。让第二个函数返回一个值可以避免错误。

我有一个准系统 HTML 文件...

...使用这些脚本:

    

当我在 Chrome 中打开文件时,我得到以下输出:

其他浏览器以自己的方式抱怨。换句话说,在同一个脚本中有两个自调用函数会导致问题。每个脚本都有一个自调用函数可以正常工作。如果我把第二个函数脚本two.js注释掉,就没有问题了。

但是,如果我让第二个函数返回一个值,那么也没有问题。如果我将 two.js 更改为此,一切正常:

为什么第一个版本失败,第二个版本成功?

0 投票
1 回答
113 浏览

javascript - (function(){})() 和 (function(){}()) 之间的区别,自调用匿名函数

看看括号的位置,有什么不同吗?

(函数)()

和(函数())

0 投票
2 回答
8126 浏览

java - Spring @Transactional 注解:自我调用

我知道当从同一个类内部调用事务方法时,它不会在事务中运行。Spring 为事务方法创建一个代理,并将它们包装在一个 try-catch 块中,并在发生异常时回滚。考虑以下场景:

假设saveAB从另一个对象调用并且发生异常saveB,因此saveA成功完成但saveB没有。据我所知,即使saveA并且saveB不是事务性的(因为它们是从同一个对象调用的),因为saveAB是事务性的,它仍然应该回滚。

我不明白的是为什么人们说自我调用会破坏事务?只要调用方方法是事务性的,不应该一切都按预期工作吗?我在这里有什么遗漏吗?