js方法参数问题

  大家都知道java是强类型语言,而js是弱类型语言,其实,它们之间的区别不止这一点,还有方法参数及调用问题,参看下例:

js中:这里定义了一个query()方法

function query() {
  var blacklistNumber=$(‘#blacklistNumber‘).val();
  var blacklistName=$(‘#blacklistName‘).val();
  var blacklistSex = $(‘#blacklistSex‘).val();
  queryObj.blacklistNumber = blacklistNumber;
  queryObj.blacklistName = blacklistName;
  queryObj.blacklistSex = blacklistSex;
  var params = JSON.stringify(queryObj);
  var param = encodeURIComponent(params);

  tab.load({
    pageNumber: 1,
    type : ‘POST‘,
    data: ‘param=‘+param+‘&params=‘+Math.random(),
    success: function(){}
  });
}

但是在下面其他地方调用时,却使用了query(1),令人匪夷所思的是却也正常的进入到了query()方法中,因为我们若按java方法中显示的调用函数时,应该是方法签名相同的,及方法名称和方法参数应该保持一致,原来,js方法中不存在方法重载,如上例子,若紧接着又依次定义了几个方法名同为query的方法,例如query(a, b),query(c,d,f)的,那么默认最后自行query(1)也只能调用query(c,d,f)。。。

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。