42

1.

function abc(){
    alert("named function");
}

v/s

2.

function(){
    alert("Un-Named function");
}

请从初学者的角度解释。

4

2 回答 2

32

它们的工作原理完全相同。只是你如何能够运行它们,它们是不同的。

所以示例 #1 你可以在任何时候再次调用abc();. 例如 2,您要么必须将其作为参数传递给另一个函数,要么设置一个变量来存储它,如下所示:

var someFunction = function() {
    alert("Un-Named function");
}

以下是如何将它传递给另一个函数并运行它。

// define it
function iRunOtherFunctions(otherFunction) {
    otherFunction.call(this);
}

// run it
iRunOtherFunctions(function() {
    alert("I'm inside another function");
});

正如大卫在下面提到的,您也可以立即调用它:

(function() {
    alert("Called immediately");
})(); // note the () after the function.
于 2013-09-16T13:11:47.930 回答
2

两者都可以用来实现相同的目的,但主要区别在于匿名函数不需要名称。匿名函数是在运行时动态声明的函数。它们被称为匿名函数,因为它们的名称与普通函数不同。

请参考这个链接

于 2013-09-16T13:13:26.797 回答