0

次のJavaScriptコードでは、コマンド関数が使用されていることがわかりますが、関数の名前が指定されていません。これはどういうことですか?

var getReview = function(movie) {
    switch (movie) {

    case "Matrix":
        return "good trip out";
        break;
    case "Princess Bride":
        return "awesome date night movie";
        break;
    case "Welcome to America":
        return "Amjad's favorite";
        break;
    case "Remember the Titans":
        return "love the sports";
        break;
    case "Why do I look like I'm 12?":
        return "The Ryan and Zach story";
        break;
    case "Fighting Kangaroos in the wild":
        return "Token Australian movie for Leng";
        break;
    default:
        return "I don't know!";
    }
};​
4

2 に答える 2

2

これは無名関数です。

上記のリンクからの引用:

匿名関数は、関数演算子を使用して宣言されます。関数演算子を使用して、式を配置することが有効な場所であればどこでも新しい関数を作成できます。たとえば、新しい関数を関数呼び出しのパラメーターとして宣言したり、別のオブジェクトのプロパティを割り当てたりすることができます。

次に、関数ステートメントを使用して通常の方法で関数を宣言する例を示します。

function eatCake() {
    alert("So delicious and moist");
}
eatCake();

同じ関数が関数演算子を使用して動的に宣言される例を次に示します。

var eatCakeAnon = function() {
    alert("So delicious and moist");
};
eatCakeAnon();
于 2012-04-28T18:51:54.040 に答える
2

これは関数リテラルです。関数のように正確に1ですが、名前はありません。これは、JavaScriptの他のすべてと同様に、単なるオブジェクトであり、特別な部分はそれを呼び出すことができるということです。ここでは、すぐにに割り当てられるため、を呼び出して関数を呼び出すgetReviewことができます。getReview()

1実際には、その定義は引き上げられませんが、それについて心配する必要はありません。

于 2012-04-28T18:54:11.090 に答える