Javascript 咖啡脚本-这有什么奇怪的;Return";是什么意思?

Javascript 咖啡脚本-这有什么奇怪的;Return";是什么意思?,javascript,coffeescript,Javascript,Coffeescript,考虑以下咖啡脚本: $ -> if localStorage["Flag1"] isnt "Done" localStorage["Flag1"] = "Done" # Flagged on first page loading $(".start").click -> if localStorage["Flag2"] isnt "Done" localStorage["Flag2"] = "Done" # Flagged on first cli

考虑以下咖啡脚本:

$ ->
  if localStorage["Flag1"] isnt "Done"
    localStorage["Flag1"] = "Done" # Flagged on first page loading
  $(".start").click ->
    if localStorage["Flag2"] isnt "Done"
      localStorage["Flag2"] = "Done" # Flagged on first click interaction
其中包括:

$(function() {
  if (localStorage["Flag1"] !== "Done") {
    localStorage["Flag1"] = "Done";
  }
  return $(".start").click(function() {
    if (localStorage["Flag2"] !== "Done") {
      return localStorage["Flag2"] = "Done";
    }
  });
});

在呈现的JavaScript中植入了两种奇怪的“return”。它们是做什么的,它们将如何影响脚本的运行?谢谢

它们不会影响脚本的运行。第一个
返回
将从DOM就绪事件处理程序返回
$(“.start”)
(因为jQuery
单击
方法返回jQuery的实例)。因为它是一个在某个点运行的回调,所以你不能用这个返回值做任何事情

在设置
localStorage
属性后,第二个
返回将返回
“Done”
,但同样,由于它是从回调(这次是单击事件处理程序)返回的,因此您将无法对返回的值执行任何操作

我相信CoffeeScript将
返回每个函数中最后一个表达式的值,这就是为什么您会在输出中看到那些
return
语句。从文档中:

尽管函数总是返回它们的最终值,但两者都有 可能并鼓励尽早从功能体写作中返回 当您知道您正在执行以下操作时,请退出显式返回(
返回值
) 完成了