正常的来说,传递参数大概都是这么写: 复制代码 代码如下: var numParameter = 123; function sendParameter() { getParameter(numParameter ); } function getParameter(sendNum) { alert(sendNum); } 很简单的A方法调用B方法并传参。 但是,如果B方法的参数不是固定的,可能根据不同的情况,需要不同的参数,可以这么写: 复制代码 代码如下: var txtParameter1 = "123"; var txtParameter2 = "234"; var txtParameter3 = "345"; var txtSendParameter = ""; var flag = 0; function sendParameter1() { flag = 1; txtSendParameter = txtParameter1 + ";" + txtParameter2; getParameter(); } function sendParameter2() { flag = 2; txtSendParameter = txtParameter2 + ";" + txtParameter3; getParameter(); } function getParameter() { if(1==flag) { //goto functionC(txtSendParameter) } else if(2==flag) { //goto functionD(txtSendParameter) } else { return; } } 那么能不能不使用全局变量来传值: 复制代码 代码如下: var txtParameter1 = "123"; var txtParameter2 = "234"; var txtParameter3 = "345"; function sendParameter1() { var txtSendParameter = "1" + txtParameter1 + ";" + txtParameter2; getParameter(txtSendParameter); } function sendParameter2() { var txtSendParameter = "2" + txtParameter2 + ";" + txtParameter3; getParameter(txtSendParameter); } function getParameter() { switch(arguments[0]) { case "1": //goto functionC(arguments); break; case "2": //goto functionD(arguments); break; default: //goto functionE(arguments); } } 相对的来说arguments是一个很灵活的对象,虽然不是array,但是可以和array一样使用下标取值,虽然有点生僻,但是还是很好用。 复制代码 代码如下: