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)。。。

时间: 2024-10-29 19:07:55

js方法参数问题的相关文章

js方法参数默认值设置

这里的默认值设置 很容易以为和php相似 function(v1,v2="test") { alert(v2); } 但这样是不对的,js方法,如需传参,甚至可以不用预定义(也就是无需在定义函数的括号中写入参数名称),js函数中有个储存参数的数组arguments ,所有函数获得的参数会被编译器挨个保存到这个数组中.如下: function testArg(){ //遍历1 for(var i=0;i<arguments.length;i++){ alert("遍历1:

Angularjs js方法参数动态传入

$scope.pageNumberCount = 10; <li  ng-repeat="i in pageNumberCount">     <a ng-click="clickPagination(i)">{{i}}</a> <!--注意:这里的参数不能写成"{{i}}"--> </li>

thymeleaf 接受字符串类型model值作为js方法参数报错500

旧   th:onclick="'javascript:view_attendee_record_list('+${meetingMsg.getMeetingRecordAttendeeState()}+')'" html5的data-*能够为标签添加一些自定义的属性和值,借此来实现. 改为  <a href="#"  th:data-name="${meetingMsg.meetingId}" onclick="view_att

js方法作为js参数调用

需求:弹层 问题:需要两种弹层,一种为只弹出消息,另一种是点击确定需要执行js方法. 分析:第一种不考虑,第二种需要用到 js方法作为js参数调用. 代码: function messageLayer(msg,callback){ //弹层调用 alert(msg); if (callback!=undefined){ callback(); } } 调用方法: sweetalert('success',function(){ window.location.href="http://www.c

js方法用来获取路径传参上所带的参数

//js方法用来获取路径传参上所带的参数 function GetQueryString(param) { var reg = new RegExp("(^|&)" + param + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) { return r[2]; } return null;

thymeleaf的初次使用(带参请求以及调用带参js方法)

之前对于前端框架接触较少,第一次接触thymeleaf,虽说看起来并不复杂但我还是花费了好一会儿才弄懂. 话不多少下面就简单说一下我在项目中的应用. 首先是java代码 controller层 将需要在前端展示的信息放入model中: @RequestMapping("getAll") public String getAll(Model model){ List<ScheduleJob> list = scheduleJobService.getAllJob(); mod

与正则有关的JS方法结合其在项目中的应用

与正则有关的JS方法结合其在项目中的应用 前言 最近项目中用到正则匹配比较多,因此打算深入理解和总结下各个与正则有关的方法,再结合在项目中使用的情况.与正则有关的JS方法共有7个,分别是RegExp对象的compile(), exec(), test() 和支持正则表达式的的String()方法为search(), match(), replace(), split(). RegExp对象方法 compile()方法 该方法用于改变和重新编译正则表达式.语法: RegExpObject.comp

[ jquery 过滤器nextAll(expr) ] 此方法用于在选择器的基础之上搜索被选元素的后面的所有同级元素,此方法参数只能传递表达式,无法传递其他类型

此方法用于在选择器的基础之上搜索被选元素的后面的所有同级元素,此方法参数只能传递表达式,无法传递其他类型 可以使用此方法向里面传递表达式的方法实现和jqueryObj.next()相同的效果 实例: <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my page'> <meta

[ jquery 过滤器next(expr) ] 此方法用于在选择器的基础之上搜索被选元素的后一个同级元素,此方法参数只能传递表达式,无法传递其他类型

此方法用于在选择器的基础之上搜索被选元素的后一个同级元素,此方法参数只能传递表达式,无法传递其他类型: 实例: <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my page'> <meta http-equiv='keywords' content='keyword1,key