想这样的一个函数,使用了默认值,
但是我想传入flag这个变量为false
其他采用默认值
该如何实现,或者说该如何调用这个函数
query(pageIndex = this.pageIndex,isOverseas = this.isOverseas,isSen=this.isSen, ip = this.ip,traffic= this.traffic,system=this.system,time=this.time, flag = true)
想这样的一个函数,使用了默认值,
但是我想传入flag这个变量为false
其他采用默认值
该如何实现,或者说该如何调用这个函数
query(pageIndex = this.pageIndex,isOverseas = this.isOverseas,isSen=this.isSen, ip = this.ip,traffic= this.traffic,system=this.system,time=this.time, flag = true)
function fn({pageIndex = 1,isOverseas = 2,flag = true} = {}){
console.log(flag)
}
fn();//true
fn({flag:false}) //flase
可以改成传入的是一个对象:
const query = ({
pageIndex = this.pageIndex,
// ...
flag = true
} = {}) = {
// ...
};
query({ flag: false });
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
没办法,JS 不支持类似其他语言中的命名参数写法:
但我建议你需要传三个以上参数的时候就不要这么写,应换成对象形式传入,配置
Object.assign
来设置默认值,这样无论是可读性还是可扩展性都会好很多:P.S. 换成对象形式后也可以直接在函数参数里写默认值,但没有
Object.assign
兼容性好。