通过一系列函数参数是不好的做法?

nat*_*mal 4 javascript parameters

我正在建立一个相当大的JS应用程序,我想得到你对一些逻辑的意见.我想知道通过一系列函数传递参数是否被认为是不好的做法,例如

function start(){
    var param1 = 'me';
    secondFunction(param1);
}

function secondFunction(param1){
    //i dont want to user the param in this function
    $.ajax('url',data,success(){
        third(param1);
    });
}

function third(param1){
    alert(param1);
}
Run Code Online (Sandbox Code Playgroud)

我想替代方法是使用全局变量,如下所示.但在我的情况下,我已经有了大量的全局变量,在我看来,有些事情对于应用程序的全局工作来说并不重要.

var param1;

function start(){
    param1 = 'me';
    secondFunction();
}

function secondFunction(){
    //i dont want to user the param in this function
    $.ajax('url',data,success(){
        third();
    });
}

function third(){
    alert(param1);
}
Run Code Online (Sandbox Code Playgroud)

所以你会说通过多个函数传递参数是好的还是我应该以另一种方式做?

谢谢

Ale*_*ler 7

实际上,这是一种很好的做法,因为它避免了任何全局状态(即理想情况下,函数的行为仅取决于其参数).

如果你有很多参数要通过这种方式传递,我会在一个单独的对象(一个'环境'对象)中将它们一起批处理,但除此之外它完全没问题.

这样做会给你很大的灵活性 - 如果你想让一个函数对不同的数据进行一次操作,你只需要传递不同的值,而不是改变全局状态,这可能会影响其他一切(没有这样的)全局副作用使得函数并行化变得非常容易,尽管这对JavaScript来说可能并不那么重要.