2010-10-07 39 views
-1

可能重复:
Explain JavaScript's encapsulated anonymous function syntax这是什么意思在JavaScript?

刚才我看到一个JavaScript的书,但我已经看到了这样的代码:

1(function() { 

      // code 

})(); 

这是什么?是一个特殊的功能?

+0

那个'1'和那个'};'从哪里来的?他们看起来不属于他们。 – BoltClock 2010-10-07 22:28:47

+0

我现在正确:) :) 1可能是函数的名称,但我不知道。 – xRobot 2010-10-07 22:31:02

+0

一个错字?图书编辑并非绝对可靠的:D – lincolnk 2010-10-07 22:34:50

回答

1

正如所写,它有一个语法错误。

我猜它更像是:

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

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

打破它:

(FOO)() // calls FOO with no arguments. 

而且

function() { //creates a function that takes no arguments. 
     // code 
} 

因此,它将创建一个不带参数的函数,然后调用它。我看不出为什么你会显示你可以。

+0

您可以在JavaScript中创建受保护的作用域。在该块中定义的var不能在外部范围内访问。 – gnarf 2010-10-07 22:44:33

+0

@gnarf。是的,就是这样! – 2010-10-07 22:55:51

1

它看起来像意图是声明函数内联/匿名,并立即执行它。