2012-04-28 84 views
0

在下面的javascript代碼中我看到有一個使用命令的函數,但它沒有指定函數的名稱。這是關於什麼的?在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!"; 
    } 
};​ 

回答

2

這是一個anonymous function

從上面的鏈接引用:

匿名函數所使用的函數運算符聲明。你可以使用函數運算符 來創建一個新的函數,無論它在哪裏有效, 來表達一個表達式。例如,您可以聲明一個新函數作爲函數調用的參數或指定另一個對象的屬性。

這裏就是一個函數以常規方式使用函數語句聲明的例子:

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

這裏的地方同樣的功能是動態聲明使用函數運算符的例子:

var eatCakeAnon = function() { 
    alert("So delicious and moist"); 
}; 
eatCakeAnon(); 
2

這是一個函數文字。這正是像一個函數,但沒有名稱;它只是一個對象,就像JavaScript中的所有其他對象一樣,其中特殊的部分就是你可以稱之爲的對象。在這裏,它立即分配到getReview,因此您可以撥打getReview()來調用該功能。

其實,它的定義不會被吊起,但你並不需要擔心。