Javascript函数声明类型之间的差异

Gaz*_*Gaz 10 javascript

在阅读关于IronJS的文章时,我可以在这篇文章中找到http://ironjs.wordpress.com/

其中包括:

*上下文敏感函数关键字

如果您不知道,这两个函数不相同:

(function bar() { })  

function foo() { } 
Run Code Online (Sandbox Code Playgroud)

找出差异,我将作为练习留给读者.

有人可以解释这里的区别吗?

Bra*_*tie 9

function foo() { }
Run Code Online (Sandbox Code Playgroud)

创建一个函数

(function foo(){ })
Run Code Online (Sandbox Code Playgroud)

返回一个函数对象.您还可以使用:

(function foo(){ })(bar)
Run Code Online (Sandbox Code Playgroud)

并创建一个匿名函数.(注意,(bar)表示该函数this中的bar实例是指实例.)

查看其他SO帖子了解更多信息.


Ami*_*far 6

我猜测的不同之处在于,第一个对全局范围不可见,后者在全局范围内可见.

  • 但为什么?(我知道,但你可能应该解释一下.) (2认同)