Javascript中没有名称的函数与名称和函数之间的区别

时间:2013-09-16 13:08:48

标签: javascript anonymous-function

1

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

V / S

2

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

请从初学者的角度来解释。

2 个答案:

答案 0 :(得分:21)

他们的工作方式完全相同。只有你能够如何运行它们才是不同的。

示例#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.

答案 1 :(得分:2)

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

请参阅此link