在JavaScript中使用变量作为函数参数

在JavaScript中使用变量作为函数参数,javascript,function,naming-conventions,Javascript,Function,Naming Conventions,我有一个问题更多的是关于最佳实践,而不是实际解决代码问题。我知道代码是有效的,我也看到过一些其他语言的类似问题,但我想解决这个问题 var parkRides = [["Birch Bumpers", 40] , ["Pines Plunge", 55] , ["cedar Coaster", 20] , ["Ferris Whell of Firs", 90]]; var fastPassQueue = ["Cedar Coaster","Pines Plunge","Birch Bumper

我有一个问题更多的是关于最佳实践,而不是实际解决代码问题。我知道代码是有效的,我也看到过一些其他语言的类似问题,但我想解决这个问题

var parkRides = [["Birch Bumpers", 40] , ["Pines Plunge", 55] , ["cedar Coaster", 20] , ["Ferris Whell of Firs", 90]];
var fastPassQueue = ["Cedar Coaster","Pines Plunge","Birch Bumpers","Pines Plunge"];
var wantsRide = "Cedar Coaster";
function buildTicket (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 = buildticket(allRides, passRides,pick);
我的问题是,一种方法是否优于另一种方法?直接使用变量名编写函数是可以接受的,还是最好在函数中为参数指定不同的名称


谢谢。

别指望能就此达成决议——这是一个没有对错答案的文体选择。事实上,人们可能会投票反对这一点,因为这是基于基本意见的。对不起,这是有区别的。如果在参数列表中使用相同的名称,则全局变量将被
buildTicket
范围内的参数隐藏。在您的情况下,如果要更改函数中
wantsRide
的值,则如果函数的参数列表中包含全局变量的名称,则更改不会反映到全局变量中。。。。或者实际上,函数外部作用域中的任何变量都会被其同名参数所隐藏。基本上,这个问题是重复的,而不是基于观点的。如果他们有相同的名字,不要把它们作为变量传递…不要期望得到一个解决方案——这是一个没有正确或错误答案的文体选择。事实上,人们可能会投票反对这个作为基于主要观点的开始。对不起,这是有区别的。如果在参数列表中使用相同的名称,则全局变量将被
buildTicket
范围内的参数隐藏。在您的情况下,如果要更改函数中
wantsRide
的值,则如果函数的参数列表中包含全局变量的名称,则更改不会反映到全局变量中。。。。或者实际上,函数外部作用域中的任何变量都会被其同名参数所隐藏。基本上,这个问题是重复的,而不是基于观点的。如果它们有相同的名称,不要将它们作为变量传递。。。
var ticket = buildticket(allRides, passRides,pick);