最近开发的时候发现一个小问题:函数重载。
function a(url){ //参数不设置target,只在当前窗口操作 } function a(url,target){ //参数增加一个target,在指定的target打开url }关于重载:在同一访问区内被声明的几个具有不同参数列的(参数的类型、个数、顺序不同)同名函数,程序解析的时候会根据不同的参数列来确定具体调用哪个函数。
找了一个解决方案:
function a(){ //根据参数的个数 var length = arguments.length; if(length ==1){ var url =arguments[0]; a1(url ); }else{ var url =arguments[0]; var target=arguments[1]; a2(url,target); } } function a1(url){ } function a2(url,target){ }这样的话还是能实现方法名重复,但是对应参数不一样执行不一样的操作