2014-10-28 75 views
0

我是javascript新手,不介意這個問題看起來很愚蠢。當我們可以省略這個時,第三行代碼中的return關鍵字有什麼意義?javascript中返回關鍵字的意義

function showName (firstName, lastName) { 
    var nameIntro = "Your name is "; 
    function makeFullName() 
    {  
     alert(nameIntro + firstName + " " + lastName); 
    } 

    return makeFullName(); // here we can omit "return" then also it is functioning same 
} 
showName ("Michael", "Jackson"); 
+3

'返回undefined'可以不用 - 沒有明確'return'(就像你的'makeFullName')功能將隱式返回'undefined'。 – Bergi 2014-10-28 14:30:19

+0

你從哪裏得到這段代碼?我發現幾乎具有相同代碼的教程(http://javascriptissexy.com/understand-javascript-closures-with-ease/)具有'makeFullName()'返回一個字符串,而不是提醒文本,這更有意義。 – JJJ 2014-10-28 14:34:34

+0

@Juhana:是的,我只從該網站複製,我試圖在jsfiddle只知道輸出。 – 2014-10-28 14:39:15

回答

1

在你的榜樣,你不需要return,因爲你的功能不會產生任何物體或價值,它只是做一些事情。 (它提醒字符串)

然而,假設您想保存nameIntro字符串的值並在以後使用它。您的函數可以修改爲返回值,可以將其保存爲變量。下面的代碼將產生相同的結果,但利用了return

function showName (firstName, lastName) { 
    var nameIntro = "Your name is "; 
    function makeFullName() 
    {  
     return nameIntro + firstName + " " + lastName; 
    } 

    return makeFullName(); 
} 
var nameString = showName("Michael", "Jackson"); 
alert(nameString); 
+1

謝謝你,我明白了:)完全可以接受。 – 2014-10-28 14:43:37

0

在那個地方沒有什麼能夠強制迴歸,去除它並在和平中過日子。 :)的

makeFullName() 

代替

return makeFullName() 
-1
function showName (firstName, lastName) { 
    var intro = 'Your name is'; 
    return intro + ' ' + firstName + ' ' + lastName; 
} 

alert(showName("Michael", "Jackson"));