为什么coffeescript到处使用“返回”声明?

时间:2013-03-24 12:57:18

标签: javascript coffeescript

写这样的东西时:

$(document).ready ->
  doSomething()

doSomething = ->
  alert('Nothing to do')

编译成

$(document).ready(function() {
  return doSomething();
});

doSomething = function() {
  return alert('Nothing to do');
};

据我所知,return语句用于值(字符串,数组,整数......)

为什么coffeescript会这样做?

2 个答案:

答案 0 :(得分:8)

如果没有指定,CoffeeScript会使用隐式返回。

CS返回函数中最后一个语句的值。这意味着生成的JS将具有最后一个语句的return值,因为JS需要显式的return

  

return语句用于值(字符串,数组,整数...)

是的,可以通过调用函数返回这些值,例如示例中的doSomething()alert()。这些值是执行方法的结果并不重要。

答案 1 :(得分:1)

Coffeescript与Ruby一样,总是返回函数中的最后一个语句。最后一个语句将始终计算为值(字符串,数组,整数等)或null。在任何一种情况下,返回结果都是完全有效的。

回答'为什么' coffescript对所有函数执行此操作,而不仅仅是有值的函数,这只是因为在很多情况下,Coffeescript无法判断最后一个语句何时将计算为值或null 。在那里总是有return声明更安全,更简单,并且没有任何负面后果。如果你不关心函数返回的内容,你可以忽略返回的值。