问题标签 [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.
javascript - for循环中的自调用函数
这是来自 https://github.com/Khan/khan-exercises/blob/master/khan-exercise.js的代码
奇怪的事情:我们看到的是自调用函数,而不是通常的 for 循环代码块!(在其他自调用函数内部)为什么会这样?这个函数将如何运行?
javascript - 这三种模块模式有什么区别?
有什么区别(尤其是第三种变体)?它们都一样吗?
javascript - 将 JavaScript 模块添加到全局范围的跨平台方法是什么?
我正在查看store.js的源代码,特别是它如何将自身添加到全局范围:
我理解最后一个陈述this.store = store
,但其他的呢?module
和define
功能是什么?还不能this.store = store
在所有浏览器上工作?
更一般地说,将模块添加到全局范围的正确跨浏览器方式是什么?
javascript - 通过对象内的 setTimeout 自调用函数
我想通过以下方式在同一个对象方法中调用 js 对象的方法setTimeout
:
但是,我收到此错误消息:
我在这里想念什么?我将如何更改 setTimeout 函数中的字符串?
谢谢你的帮助!
编辑:我在 mac 上使用 firefox。
javascript - 如何调用自调用函数
我试图以这种方式调用自调用函数:
它只工作一次。window.resize 没有回应 谢谢
javascript - 为什么 Ajax 不使用自调用?
自调用closure
函数的奇怪语法意味着您本质上是在调用函数本身,因此将其设为self-invoking
. 这里有一些代码证明了这一点:
...上面的第二个函数没有执行,因为它缺少结束括号,并且innerHTML
变成了整个函数本身。那么,为什么您的标准 Ajax 语法不以同样的方式使用自调用呢?似乎这些属性以独特的方式处理XMLHttpRequest
。onreadystatechange
这是一个例子:
注意没有结束括号...我问这个是因为我想进一步了解 Ajax 语法,以及它到底在做什么。
javascript - 命名自调用函数
有没有理由使用命名的自调用函数?
例如:
就我的学习而言,这与匿名自调用函数的作用相同,没有额外的优点(您不能在调用后再次调用它),也没有额外的缺点,因为它不会“污染”全局范围(我认为)。
是否有任何时候命名像上面这样的自调用函数是有意义的?
javascript - JavaScript 中的自调用函数
我有一个像这样的自调用函数:
typeof f
始终是最后一个函数定义中返回的类型。就像如果h
是最后一个,那么它是"string"
,但如果我删除h
并拥有g
最后一个,那么"number"
。
有人可以解释为什么吗?
javascript - 使用自调用函数进行数组初始化
我正在尝试使用自调用函数初始化一个数组,为了简单起见,假设初始值是从 0 到 4 的数字的平方。new
关键字创建新对象,因此可以使用this.x
或访问新创建对象的字段this[x]
在 IIFE 主体内,跟在new
关键字之后。代码是:
现在,您可以访问变量arr
like的相应字段arr[4]
,并获取16
。如果您只使用 like 处理一个对象,那很好arr
,但是一旦您尝试将其视为数组,您就会遇到问题。即,您不能reduce
对它应用类似的功能:
那是因为arr
真的是一个对象,而不是一个数组:
所以这是我的问题:如何在这种方法中避免这种行为?如何让 JavaScript 将这个新创建的对象解释为数组?