关于function(res){ }
来源:4-8 通用导航开发(逻辑层)

橙序猿哥哥
2018-10-24
老师您好,我想问一下关于
$('.js-logout').click( function(){ _user.logout( function(res){ window.location.reload(); }, function(errMsg){ _mm.errorTips(errMsg); });
中我们logout方法的第一个参数是函数function(res){ window.location.reload(); }
而这个函数也就是要传进我们mm.js中的request方法下的param.success,我看咱们在定义request方法时给param.success传入的形参是两个,而咱们在定义`function(res){
window.location.reload();
}时却只传给一个,这样不会影响吗?
**也就是说JS语法中是不是允许定义函数有两个形参时,而在调用时可以只传一个实参进去也是行得通的 是吗?**谢谢老师
写回答
1回答
-
mid_one
2018-10-24
只传一个实参是可以的, 函数调用的时候如果发现你只传了一个参数,会将第一个形参替换为实参, 其余的形参会赋值为undefined
function a(m, n, o){ console.log(m) console.log(n) console.log(o) } a(1) 1 undefined undefined undefined
具体可以看看<<权威指南>>函数这一章
param.success(res.data, res.msg)
这里多传了个res.msg其实考虑到有可能ajax请求成功了但是返回的数据有错或者请求成功了接口返回给你一个成功的msg提醒你.
为了程序的健壮性而做的.
012018-10-28
相似问题