【问题标题】:Significance of return keyword in javascriptjavascript中return关键字的意义
【发布时间】:2014-12-24 00:10:55
【问题描述】:

我是 javascript 新手,如果这个问题看起来很愚蠢,请不要介意。当我们可以省略时,代码的倒数第三行中的return关键字有什么意义?

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"); 

【问题讨论】:

  • return undefined 总是可以省略 - 一个没有显式 return 的函数(比如你的 makeFullName)将隐式返回 undefined
  • 你从哪里得到这个代码?我用几乎相同的代码 (javascriptissexy.com/understand-javascript-closures-with-ease) 找到的教程有 makeFullName() 返回一个字符串而不是警告文本,这更有意义。
  • @Juhana:是的,我只从那个站点复制,我只是为了知道输出而尝试使用 jsfiddle。
  • 您是否也添加了警报?因为那不是原作。
  • 是的,我自己添加了它,但这不是重点。请参阅 Brian Glaz 的回答。我是在这种情况下问的。

标签: javascript return


【解决方案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); 

【讨论】:

    【解决方案2】:

    没有什么可以强制在那个地方返回,移除它并平静地过你的生活。 :)

    makeFullName() 
    

    而不是

    return makeFullName()
    

    【讨论】:

      【解决方案3】:
      function showName (firstName, lastName) {
        var intro = 'Your name is';
        return intro + ' ' + firstName + ' ' + lastName;
      }
      
      alert(showName("Michael", "Jackson"));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-03-01
        • 2011-12-10
        • 1970-01-01
        • 2023-01-16
        • 2020-05-26
        相关资源
        最近更新 更多