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

(…())与(…)()在javascript闭包中[重复]

苗征
2023-03-14
问题内容

我知道这很愚蠢,但这之间有什么区别:

(function() {  
    var foo = 'bar';  
})();

和这个?

(function() {  
    var foo = 'bar';  
}());

JSLint告诉我们Move the invocation into the parens that contain the function,但是我认为没有必要。

编辑:
答案太酷了。~function,JSHint替代品,以及jQuery的偏好(/***/)();和Crockford的解释!我以为我只会得到“他们是同一件事”的答案。


问题答案:

没有区别 两种方法都是使JavaScript解析器将函数视为 表达式 而不是 声明的 有效方法。

请注意,+!也可以使用,并且有时被缩小器用来保存大小字符:

+function() {  
    var foo = 'bar';  
}();

!function() {  
    var foo = 'bar';  
}();

编辑

正如@copy指出的那样,出于完整性考虑,它~-将起作用。

-function() {  
    var foo = 'bar';  
}();

~function() {  
    var foo = 'bar';  
}();


 类似资料:
  • 主要内容:什么是闭包,闭包的用途,闭包的高级用法闭包(closures)是 Javascript 语言的一个难点,也是它的特色,很多高级应用都是依靠闭包实现的。闭包与变量的作用域以及变量的生命周期密切相关,本节我们就来简单介绍一下。 什么是闭包 所谓闭包,指的就是一个函数。当两个函数彼此嵌套时,内部的函数就是闭包。 因为在 JavaScript 中,函数属于对象,对象又是属性的集合,而属性的值又可以是对象,所以我们可以在函数内部再定义函数。例如

  • 本文向大家介绍Javascript中return的使用与闭包详解,包括了Javascript中return的使用与闭包详解的使用技巧和注意事项,需要的朋友参考一下 前言 Javascript中闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。而return语句在js中起到举足轻重的作用,该关键字不仅具有返回函数值得功能,还具有一些特殊的用法,

  • 函数表达式 函数表达式是JavaScript中既强大又容易让人困惑的特性。 函数的定义 函数的定义有两种方式:函数声明 和 函数表达式。 函数声明 函数声明的语法: function functionName () { //函数体 } function是关键字,后面跟着的是函数的名字,这就是指定函数名的方法。谷歌、火狐、苹果、欧朋等浏览器给函数定义了一个非标准的name属性,它的值 等于

  • 本文向大家介绍JavaScript中的闭包介绍,包括了JavaScript中的闭包介绍的使用技巧和注意事项,需要的朋友参考一下 所谓的闭包应该是指: 内部函数读取当前函数以外的变量,即创建时所处的上下文环境。 需要注意的是这里的print函数引用了外部hello函数的char变量,于是在这里我们能够返回一个 而这个功能在某种意义上来说,应该是要归功于作用域。当然了,我们没有办法直接访问char,除

  • 本文向大家介绍JavaScript闭包详解,包括了JavaScript闭包详解的使用技巧和注意事项,需要的朋友参考一下 在上一篇文章我们对预解释作了概述,在写这篇博文前打算写几个经典案例,考虑到那些案例综合性比较强,也就循序渐进的有了这篇博文,这样对于学习和深入JavaScript也更加容易入手。 序 一同事去面试,面试官问了一道题:你写一个闭包我看下?于是同事火速写出如下代码: 然后面试官摇摇头

  • 问题内容: 看到: 问题在于,警报的item.id始终是数组中最后一个项目的ID(this.items)。怎么解决? 问题答案: 这里的问题是变量随每个循环而变化。在以后参考时,将使用其保留的最后一个值。您可以使用一种称为闭包的技术(本质上是一个返回函数的函数)来快速确定变量的范围。 旁注我看到您在这里有jQuery。它具有可以与数组一起使用的辅助函数,并且可以作为简单的for/each循环的快捷