When to use anonymous JavaScript functions?
我试图了解何时使用匿名JavaScript函数。
功能之间的状态差异? 解释何时使用每个。
1 2 3 4 5 6 7 | var test1 = function(){ $("").html("test1").appendTo(body) }; function test2() { $("").html("test2").appendTo(body) } |
我认为答案是使用匿名函数而另一个不替换空div元素。 那似乎对吗?
在你的例子中,它确实没有太大的区别。 唯一的区别是使用
1 2 3 4 5 6 | foo(); // ok function foo() { ... }; bar(); // error, bar is not a function var bar = function () { ... }; bar(); // ok |
在不需要命名函数或构建对象的情况下,通常使用匿名函数:
1 2 3 4 5 | arr.sort(function (a, b) { return a - b; }); // anonymous callback function function MyObject() { this.foo = function () { ... } // object constructor } |
您可以查看John Resig的JavaScript库秘密,特别是第47页的JavaScript函数。 相当冗长,但您将了解有关JavaScript的更多信息
当您不想污染全局命名空间时,您将使用类似下面的函数(这是另一种类型的匿名函数):
1 2 3 4 5 6 7 | (function() { var pollution = 'blablabla'; function stinky() { // Some code } })(); |