文件:function.js中有一个方法:
function setKeys() {
  var argnum;
  argnum = arguments.length;
  for (i = 0; i < argnum; i++) {
    document.formName.elements[("key_" + (i + 1))].value = arguments[i];
  }
}在我的jsp中include该文件,并调用setKeys()方法,但是,在调用的时候是用如下方式调用的:
setKeys(arg1,arg2,arg3)。我感到迷惑的是:jsp中调用时是由参数的,而js中是没有参数的,两者是如何匹配的?

解决方案 »

  1.   

    谢谢King6860() 的回答。
    参照King6860() 的回答,我进一步作了测试:
    <html>
    <head></head>
    <script language="JavaScript">
    <!--
    function a(){
    alert("no parameter:" + arguments[0]);
    }
    function a(arg1,arg2) {
      alert("have parameters:" + arguments[0]);
      alert("arg1:" + arg1);
    }
    -->
    </script>
    <body>
    <form>
    <input type="button" name="alertStr" value="justClick" onclick="a('aaaaaaaaa')">
    </form>
    </body>
    </html>发现在方法名称相同的时候,优先调用带形式参数的js方法,而不管参数个数是否匹配(如上,调用的是第二个有两个形式参数的方法,但是onclick时传入的却是一个参数)。