在写这样的东西时:
$(document).ready ->
doSomething()
doSomething = ->
alert('Nothing to do')被编译成
$(document).ready(function() {
return doSomething();
});
doSomething = function() {
return alert('Nothing to do');
};在我的理解中,return语句用于值(字符串、数组、整数...)
为什么coffeescript要这么做?
发布于 2013-03-24 21:03:30
如果未指定任何值,则CoffeeScript将使用隐式返回。
CS返回函数中最后一条语句的值。这意味着生成的JS将拥有最后一条语句的值的return,因为JS需要显式的return。
返回语句用于值(字符串、数组、整数...)
是的,这些值可以通过调用一个函数来返回,比如你的例子中的doSomething()或alert()。值是执行方法的结果是无关紧要的。
发布于 2013-03-24 21:05:32
像Ruby一样,Coffeescript总是返回函数中的最后一条语句。最后一条语句将始终计算为一个值(字符串、数组、整数等)或null。在任何一种情况下,返回结果都是完全有效的。
要回答“为什么”coffescript对所有函数都这样做,而不是只在有值的函数中这样做,原因很简单,因为在许多情况下,coffescript不能判断最后一条语句何时将计算为值或null。始终将return语句放在那里会更安全、更简单,而且不会有任何负面影响。如果你不关心函数返回什么,你可以忽略返回值。
https://stackoverflow.com/questions/15598727
复制相似问题