你能解释一下javascript中的功能吗?

时间:2011-06-24 13:32:46

标签: javascript

  

可能重复:
  What does this mean? (function (x,y)){…}){a,b); in JavaScript

(function(){
    var foo = 'Hello world';
})();

我不知道它的用途是什么?它是什么意思/?

3 个答案:

答案 0 :(得分:6)

除了声明一个未使用的变量之外,它本身什么都不做 - 它应该调用其他一些函数来做一些有用的事情。

那就是说,你所拥有的是一个立即调用的函数表达式,即一个匿名函数:

function() { ... }

,没有参数调用:

(f....)();

理由是双重的:

  • 它允许定义和调用函数,而不在全局名称空间中为其命名
  • 在函数中定义的任何变量也保存在该范围内,并且不会污染全局名称空间。

答案 1 :(得分:3)

这是一个立即执行的匿名函数。

我们的想法是创建一个私有范围。通常会从匿名函数返回一个闭包,该函数保留对在该作用域中创建的变量的访问权。

例如

var greet = (function () {
    var foo = 'Hello world';
    return function () {
        alert(foo);
    }
}());

greet();

答案 2 :(得分:0)