0

在下面的 javascript 代码中,我看到使用了 command 函数,但它没有指定函数的名称。这是怎么回事?

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

这是一个函数字面量。它完全是1,就像一个函数,但没有名称;它只是一个对象,就像 JavaScript 中的所有其他东西一样,特殊之处在于您可以调用它。在这里,它立即分配给getReview,因此您可以调用getReview()来调用该函数。

1实际上,它的定义不会被提升,但你不必担心。

于 2012-04-28T18:54:11.090 回答
2

这是一个匿名函数

引用上面的链接:

匿名函数使用函数运算符声明。您可以使用函数运算符在任何可以放置表达式的地方创建新函数。例如,您可以将新函数声明为函数调用的参数或分配另一个对象的属性。

这是一个使用函数语句以常规方式声明函数的示例:

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

这是一个使用函数运算符动态声明相同函数的示例:

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