当前位置: 首页 > 面试题库 >

自动执行匿名JavaScript函数的括号位置?

金飞
2023-03-14
问题内容

最近,我将json2.js的当前版本与项目中使用的版本进行了比较,并发现函数表达式的创建和自我执行方式有所不同。

用于将匿名函数包装在括号中然后执行的代码,

(function () {
  // code here
})();

但是现在它将自动执行的函数包装在括号中。

(function () {
  // code here
}());

有通过CMS在接受答案的注释解释JavaScript的封装匿名函数的语法是“既:(function(){})();(function(){}());有效。”

我想知道有什么区别吗?前者是否通过留下全局匿名函数来占用内存?括号应位于何处?


问题答案:

它们实际上是相同的。

第一个将括号括在函数周围,以使其成为有效的表达式并调用它。表达式的结果是不确定的。

第二个执行函数,并且自动调用周围的括号使之成为有效的表达式。它还将评估为undefined。

我不认为有“正确”的方法,因为表达式的结果是相同的。

> function(){}()
SyntaxError: Unexpected token (
> (function(){})()
undefined
> (function(){return 'foo'})()
"foo"
> (function(){ return 'foo'}())
"foo"


 类似资料:
  • 我经常这样编写JS自动执行匿名函数 但前几天我在某人的代码里看到了这个 有什么不同,推荐哪一种?

  • 本文向大家介绍浅析Javascript匿名函数与自执行函数,包括了浅析Javascript匿名函数与自执行函数的使用技巧和注意事项,需要的朋友参考一下 函数是JavaScript中最灵活的一种对象,这里只是讲解其匿名函数的用途。匿名函数:就是没有函数名的函数。 函数的定义,大致可分为三种方式: 第一种:这也是最常规的一种 第二种:这种方法使用了Function构造函数,把参数列表和函数体都作为字符

  • 问题内容: 在javascript中,存在创建匿名函数并立即调用它的常见模式(通常称为自执行匿名函数或立即调用的函数表达式)。 使用Java 8 lambda,是否有标准方法可以复制此行为?有点像。 这个问题基本上提出了相同的问题,但是对于Java7。我正在明确地寻找使用lambda的构造。 问题答案: 也不是没有声明类型。由于Java是静态类型的语言,并且函数不是一等公民,因此编译器需要知道la

  • 在javascript中,常见的模式是创建匿名函数并立即调用它(通常称为自动执行匿名函数或立即调用的函数表达式)。 对于Java8 lambdas,是否有复制这种行为的标准方法?类似于

  • 我需要一个for循环中的click函数,这样每个id元素都可以单击。但是我还需要click函数中的I,这就是为什么我认为自动执行匿名函数是最好的方法。但出于某种原因,这不起作用,可能是因为单击函数不允许我转发参数?我做错了什么?

  • 我有一个脚本给了我以下错误:“TypeError:clickables[ic]未定义”,当我用Firebug/在浏览器控制台中检查它时。我是一名javascript初学者,正在尝试学习如何使用vanilla javascript进行操作,因此我正在专门寻找一种解决方案。 问题是:如何消除/消除未定义的TypeError? 我使用它来显示隐藏的元素,其显示属性设置为无。脚本应该获取文档中特定类的所有