web-dev-qa-db-ja.com

Javascriptでの名前のある関数と名前のない関数の違い

1。

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

v/s

2。

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

初心者の方から親切に説明してください。

28
Shwet

それらはまったく同じように機能します。それらが異なるのは、それらを実行できる方法だけです。

したがって、例#1では、abc();を使用していつでも再度呼び出すことができます。たとえば、次のように、パラメータとして別の関数に渡すか、変数を設定して保存する必要があります。

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");
});

Davidが以下で言及しているように、すぐに呼び出すこともできます。

(function() {
    alert("Called immediately");
})(); // note the () after the function.
21
Jordan

両方を使用して同じことを実現できますが、主な違いは匿名関数に名前が必要ないことです。無名関数は、実行時に動的に宣言される関数です。通常の関数と同じ方法で名前が与えられないため、匿名関数と呼ばれます。

これを参照してください link

2
Amit