这两个函数怎么重构成一个函数, 有没有必要?function vote(pollForm,option,pollId,objectId)
{
var action = "/ajaxVote.jspa";
var pars ="pollId="+pollId+"&option="+option+"&objectId="+objectId;
var myAjax = new Ajax.Request(action,{method: 'post', parameters: pars, onComplete: updatePage} );
} function vote(pollForm,option,pollId,objectId,type)
{
var action = "/ajaxVote.jspa";
var pars ="pollId="+pollId+"&option="+option+"&objectId="+objectId + "&type="+type;
var myAjax = new Ajax.Request(action,{method: 'post', parameters: pars, onComplete: updatePage} );
}

解决方案 »

  1.   

    function vote(pollForm,option,pollId,objectId,type) 

      var action = "/ajaxVote.jspa"; 
      var pars ="pollId="+pollId+"&option="+option+"&objectId="+objectId;
      if(arguments.length==5) pars += "&type="+type; 
      var myAjax = new Ajax.Request(action,{method: 'post', parameters: pars, onComplete: updatePage} ); 
    }
      

  2.   

    一模一样的功能,参数不同,肯定要重构~
    要不到时候再多出一个参数,你又得写多一个函数 ?
    参考
    <script type='text/javascript'>
    var vote = function(pars){
    if(!pars || typeof pars != 'object') return;
    else{
    var p = [];
    for(var i in pars){
    p.push(i+'='+pars[i])
    }
    }
    alert(p.join("&"));
    }
    //调用时多了什么参数,加到对象参数中就好了
    func({
    pollId:'1',
    option:'2',
    objectId:'3'
            
    })
    </script>
      

  3.   

    ft,调用.vote({
        pollId:'1',
        option:'2',
        objectId:'3'
            
    })
      

  4.   


    function vote(pollForm,option,pollId,objectId,type) 

    var action = "/ajaxVote.jspa"; 
    var pars ="pollId="+pollId+"&option="+option+"&objectId="+objectId;
    if(type)pars += "&type="+type; 
    var myAjax = new Ajax.Request(action,{method: 'post', parameters: pars, onComplete: updatePage} ); 
    }