关于javascript:编写子任务脚本

scripting subtlties

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicates:
When to use anonymous JavaScript functions?
Is there any difference between var name = function() {} & function name() {} in Javascript?

在javascript(和其他脚本语言)中,这两种语法之间的"真正"区别是什么:

a)function myFun(x) { yadda yadda }

b)myFun(x) = function { yadda yadda }

对于一个不经意的观察者来说——没有"真正的"区别——你仍然称之为myfun()…,他们仍然返回相同的东西,所以如果引用和返回是相同的——这是一种偏好,还是代码分析引擎对这两种不同的处理有什么区别——如果是,你什么时候会使用一种而不是另一种????


真正的,超级秘密的区别:

1
2
3
4
5
foo(); // succeeds
function foo() { alert("hi"); }

bar(); // fails
var bar = function() { alert("hi"); }

前一种语法提升了函数,这样(尽管可以说是糟糕的做法)可以在代码中的实际行之前调用它。后一种语法要求您首先声明函数。


你实际上是指var myFun = function(x) { ... }

如果你不把var放在那里(坏),它就变成了一个全局变量,这不是你想要的。我认为,function语法会自动将变量限制为局部变量,但人们同时使用这两种语法。

否则,差异太小,不值得关注,但是您可以看到关于何时使用匿名javascript函数的公认答案?