我需要你的帮助来解决以下问题:
使用以下函数调用AddSub#我想传递给主要的add函数(AddAll)变量名为string#
function AddSub1()
{ string11 = '11';
string12= '12';
string13= '13';
AddAll(string11, string12, string13);
}
function AddSub2()
{ string21 = '21';
string22= '22';
string23= '23';
AddAll(string21, string22, string23);
}
但如果我这样做:
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 undefined undefined undefined
然后,如果我调用AddSub2,我得到:21 22 23 undefined undefined undefined
如何正确地将变量传递给AddAll函数,以便获得11 12 13 21 22 23?
非常感谢!
答案 0 :(得分:3)
你应该使用参数,一个类似于数组的对象,对应于传递给函数的参数。
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]);
}
}
详细了解arguments
注意:强>
AddAll()
Array
,只需comma(,)
分隔答案 1 :(得分:0)
您可以更改您的函数,以便它需要一个字符串数组。
function AddAll(strings) {
for (var i = 0; i < strings.length; i++) {
document.write(strings[i]);
}
}
AddAll(["hello", "world"]);
或使用示例中的代码:
function AddSub2() {
string21 = '21';
string22= '22';
string23= '23';
AddAll([string21, string22, string23]);
}
答案 2 :(得分:0)
我会使用@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]);
}
这样,你传递给函数的字符串数量无关紧要。
从你的问题看来,这个函数似乎会有多次迭代。
答案 3 :(得分:-1)
您可以使用全局变量:
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();