2014-10-28 155 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"));