gpt4 book ai didi

javascript - 当我们可以使用简单的 return 语句时,为什么要使用函数表达式

转载 作者:行者123 更新时间:2023-12-03 02:29:48 27 4
gpt4 key购买 nike

当我学习 javascript 时,我对使用函数表达式感到非常困惑。我理解它的语法,但只是不确定这样做的目的。例如这里

return function(){ alert("Quick! You've got a Fast Pass to " + pass + "!");};

我们不能只使用 return 和 then 语句吗?我将发布此代码的来源

var parkRides = [["Birch Bumpers", 40], ["Pines Plunge", 55],
["Cedar Coaster", 20], ["Ferris Wheel of Firs", 90]];

var fastPassQueue = ["Cedar Coaster", "Pines Plunge", "Birch Bumpers", "Pines Plunge"];
var wantsRide = "British Bumpers";
function buildTickets(allRides, passRides, pick) {
if(passRides[0] == pick) {
var pass = passRides.shift();
return function(){ alert("Quick! You've got a Fast Pass to " + pass + "!");};
} else {
for(var i = 0; i < allRides.length; i++){
if(allRides[i][0] == pick){
return function() { alert("A ticket is printing for " + pick + "!\n" + "Your wait time is about " + allRides[i][1] + "minutes. ");};
}
}
}
}
var ticket = buildTickets(parkRides,fastPassQueue, wantsRide)();
tickets();

我的意思是我们仍然可以使用变量 pass,因为即使没有 new function(),它也位于同一个函数中。为什么我们在这里也需要使用闭包?

最佳答案

有时您希望通过返回一个函数来准确控制何时运行某些逻辑(在上面的情况下警报),然后您可以控制何时警报 通过调用 tickets

想象一下,如果用户设置了不查看警报消息的首选项,则逻辑将非常简单:isAlertAllowed ?门票():空

关于javascript - 当我们可以使用简单的 return 语句时,为什么要使用函数表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48779350/

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