如何将参数从多个子函数传递到一个主要函数
How to pass parameters from several sub functions to a major one
我需要您帮助来弄清楚以下内容:
使用以下名为 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 未定义 未定义 未定义
如何将变量正确传递给 AddAll 函数,以便获得 11 12 13 21 22 23?
多谢!
你应该使用参数,一个类似于数组的对象,对应于传递给函数的参数。
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()
作为Array
,只需comma(,)
分开
即可
您可以更改函数,使其采用字符串数组。
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]);
}
我会使用答案的修改版本@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]);
}
这样,你传递给函数多少个字符串都没关系,它们都会被写入。
从您的问题来看,此功能似乎将进行多次迭代。
您可以使用
全局变量:
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();
相关文章:
- 我可以在json对象中添加一个函数吗
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 在另一个函数中使用变量this
- 在另一个函数成功结束后调用该函数
- mongoose.connect undefined不是一个函数
- 监听器必须是一个函数
- 使用JS函数来使用另一个函数的语法?node.js
- 如何取消object.prototypes javascript的一个函数
- 从Chrome扩展名中的popup.html文件在background.js文件中运行一个函数
- 嵌套到另一个函数中的Fancybox函数;不起作用
- 如何在javascript中使用不止一个函数
- jQuery-在页面加载时执行一个函数
- jquery UI draggable:UI.children不是一个函数
- jQuery Mobile Undefined不是一个函数
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- javascript函数将数据添加到屏幕,但随后被另一个函数覆盖
- JS异常:animate不是一个函数
- 如何将一个函数附加到一个不存在的元素上
- JavaScript/jQuery-添加添加和删除类与下一个函数之间的延迟