Rst*_*voa 3 javascript parameters scope function
我正在为一组函数编写一些脚本,这些函数都通过一次调用操作并获取大量参数来返回一个值.主要功能需要使用11个需要使用相同参数的其他功能.我的结构有点像这样:
function mainfunction(param1, param2, ..., param16)
{
//do a bunch of stuff with the parameters
return output;
}
function secondaryfunction1()
{
//gets called by mainfunction
//does a bunch of stuff with the parameters from mainfunction
}
Run Code Online (Sandbox Code Playgroud)
我可以做些什么来使传递给main函数的参数可用于所有辅助函数而不传递它们或使它们成为全局变量?如果没有,那很好,我会把它们作为参数传递 - 我很好奇我是否可以更优雅地做到这一点.
你可以把secondaryfunction1
里面的定义mainfunction
:
function mainfunction(param1, param2, ..., param16){
function secondaryfunction1() {
// use param1, param2, ..., param16
}
secondaryfunction1();
}
Run Code Online (Sandbox Code Playgroud)
更新:
正如@dystroy指出的那样,如果您不需要在secondaryfunction1
其他地方打电话,这是可行的.在这种情况下,参数列表将来自哪里 - 我不知道.
您可以使用arguments
传递给secondaryFunction1
所有参数mainfunction
.但这很愚蠢.
你应该做什么,以及通常做什么,将所有参数嵌入"options"对象:
function mainfunction(options){
secondaryfunction1(options);
}
function secondaryfunction1(options) {
// use options.param1, etc.
}
// let's call it
mainfunction({param1: 0, param2: "yes?"});
Run Code Online (Sandbox Code Playgroud)
这有其他优点,比如