我需要你的帮助来解决以下问题:
使用名为AddSub#的以下函数,我希望将名为string#的变量传递给主添加函数(AddAll
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未定义
然后,如果我调用AddSub2,我会得到: 21 22 23 undefined undefined
如何正确地将变量传递给AddAll函数,这样才能得到11 12 13 21 22 23?
非常感谢!
发布于 2012-05-25 18:29:22
您可以使用全局变量:
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();发布于 2012-05-25 18:24:24
您应该使用arguments,一个类似Array的对象,与传递给函数的参数相对应。
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]);
}
}阅读有关的更多信息
备注:
Array传递给AddAll(),只需将comma(,) 发布于 2012-05-25 18:29:08
你可以改变你的函数,让它接受一个字符串数组。
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]);
}https://stackoverflow.com/questions/10752698
复制相似问题