关于js的默认参数问题

如下,有这样一个方法,接受4个参数 x y k j。其中k j的默认值为1 ,2

 get: function (x, y, k = 1, j = 2){}

当想省略后面两个参数的时候可以这样调用

this.get(1,2)

现在我如果只想省略第三个参数,我应该怎么写呢?
这样写好像也没法知道哪个参数被省略了

this.get(1,2,3)
阅读 1.7k
3 个回答
this.get(1,2,undefined,3) 

建议写成下面的样子

get: function ({x,y,k = 1, j= 2} = {}){}
this.get({x:1,y:2,j:3})

传一个对象,代码可读性更好,传参也更加自由

function test (params) {
    let x = params.x || 'default'
    let y = params.y || 'default'
    let z = params.z || 'default'
}

test({
    x: 1,
    z: 3
})

es6还可以用解构赋值的方式

this.get(1,2,null,3)

推荐问题