Javascript 如何将多个子函数的参数传递给主函数
我需要你的帮助,帮助我解决以下问题: 对于以下名为AddSub的函数,我希望将名为string的变量传递给主add函数(AddAll)# 但如果我这样做:Javascript 如何将多个子函数的参数传递给主函数,javascript,jquery,ajax,function,variables,Javascript,Jquery,Ajax,Function,Variables,我需要你的帮助,帮助我解决以下问题: 对于以下名为AddSub的函数,我希望将名为string的变量传递给主add函数(AddAll)# 但如果我这样做: function AddAll(string11, string12, string13, string21, string22, string23){ document.write(string11); document.write(string12); document.write(string13); d
function AddAll(string11, string12, string13, string21, string22, string23){
document.write(string11);
document.write(string12);
document.write(string13);
document.write(string21);
document.write(string22);
document.write(string23);
}
我调用函数AddSub1,我得到:11 12 13未定义未定义
然后,如果我调用AddSub2,我得到:21 22 23 undefined undefined
如何将变量正确地传递给AddAll函数,以便获得1121321223
非常感谢 应该使用arguments,一种与传递给函数的参数相对应的类似数组的对象
function AddAll(){
var args = arguments; // arguments will give you an array
// of all passed arguments to this function
// here I keep just a reference in args,
// you can also use argumetns itself directly
// To retrieve those arguements use this
document.write(args[0]);
document.write(args[1]); // ...etc
// You can also make a loop over arguments
for (var i = 1; i < arguments.length; i++) {
document.write(arguments[i]);
}
}
函数AddAll(){
var args=arguments;//arguments将为您提供一个数组
//传递给此函数的所有参数的
//这里我只保留了args中的一个引用,
//您也可以直接使用argumetns本身
//要检索这些论点,请使用以下命令
document.write(args[0]);
document.write(args[1]);/…等
//您还可以在参数上进行循环
for(var i=1;i
阅读更多关于
注意:
- 不要不必要地使用全局变量
- 无需将参数作为
传递给Array
,只需将AddAll()
分隔即可逗号(,)
function AddAll(strings) {
for (var i = 0; i < strings.length; i++) {
document.write(strings[i]);
}
}
AddAll(["hello", "world"]);
您可以使用全局变量:
var string11,string12,string13,string21,string22,string23;
function AddSub1()
{
string11= '11';
string12= '12';
string13= '13';
}
function AddSub2()
{
string21= '21';
string22= '22';
string23= '23';
}
function AddAll(){
document.write(string11);
document.write(string12);
document.write(string13);
document.write(string21);
document.write(string22);
document.write(string23);
}
然后你打电话:
AddSub1();
AddSub2();
AddAll();
我会使用@thecodeparadox对答案的修改版本
function AddAll(){
var args = arguments; // arguments will give you an array
for(var i=0,j=args.length;i<j;i++)
document.write(args[i]);
}
函数AddAll(){
var args=arguments;//arguments将为您提供一个数组
对于(var i=0,j=args.length;我知道了很多,现在我明白了全局变量的重要性!这是一个肮脏的解决方案,我不明白如何将其标记为正确的。全局变量应该尽可能少地使用。当然,作为AddSub#
的响应,您会得到未定义的,因为在该函数中您调用AddAll
给出的参数比预期的少。已经给出的其他解决方案似乎更容易接受。或者,至少,您应该向我们解释为什么需要这些嵌套函数。如果他们理解错误,我的错误是什么?当然,在打印前获取参数是“参数回音器”的最佳解决方案函数,但这不是他要求的。问题本身是有问题的,但我的答案是这个问题。并且完全符合他的要求。这种方法的一个缺点是,这个函数不明显需要任何参数或这些参数是什么。尽管如果你的函数是可变的,那么没有太多选择
AddSub1();
AddSub2();
AddAll();
function AddAll(){
var args = arguments; // arguments will give you an array
for(var i=0,j=args.length;i<j;i++)
document.write(args[i]);
}