关于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提醒你.

为了程序的健壮性而做的.

0
1
Rosen
很到位!
2018-10-28
共1条回复

真实数据对接 从0开发前后端分离的企业级上线项目

【毕设项目精品】前端实战,对接真实服务端数据,开发完整项目

4268 学习 · 4120 问题

查看课程