if localStorage["Flag1"] isnt "Done" localStorage["Flag1"] = "Done" # -6ren">
gpt4 book ai didi

javascript - CoffeeScript - 这个奇怪的 "Return"出现是什么意思?

转载 作者:行者123 更新时间:2023-11-30 18:23:13 24 4
gpt4 key购买 nike

考虑以下 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 click interaction

编译成:

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

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

最佳答案

它们不会影响脚本的运行。第一个 return 将从 DOM 就绪事件返回 $(".start")(因为 jQuery click 方法返回 jQuery 的实例)处理程序。由于它是在特定点运行的回调,因此您不能对该返回值执行任何操作。

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

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

Even though functions will always return their final value, it's both possible and encouraged to return early from a function body writing out the explicit return (return value), when you know that you're done.

关于javascript - CoffeeScript - 这个奇怪的 "Return"出现是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11555566/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com