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
语句。从文档中:
尽管函数总是返回它们的最终值,但两者都有
可能并鼓励尽早从功能体写作中返回
当您知道您正在执行以下操作时,请退出显式返回(返回值
)
完成了