javascript - 对象参数的默认值

标签 javascript

我想创建一个以对象作为参数的函数
例如,该对象可以具有三个键:x、y、z
所有这些键都必须有默认值分配

我尝试过这个:

function f({x:x, y:y, z: z} = {x:1,y:2,z:3}) {
  return x + y + z;
}    

但是我有一个问题

f() // return 6 => OK!
f({x: 2, y: 3, z: 4}) // return 9 => OK!
f({x: 2, y:3}) // return NaN (because z === undefined), I expect 8


我怎样才能做到这一点?

最佳答案

您可以在解构对象时分配单独的默认值:

function f({ x = 1, y = 2, z = 3 } = {}) {
  return x + y + z
}

console.log(f())
console.log(f({ x: 2, y: 3, z: 4 }))
console.log(f({ x: 2, y:3 }))

See the docs here ,它描述了数组解构,但这同样适用于对象。

关于javascript - 对象参数的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49183135/

相关文章:

javascript - promise 决心成功吗?

javascript - 仅保留 Reducer 中的某些字段

javascript - 使用 jQuery 提交按钮在 IE9 和 FF9 中不起作用

javascript - localStorage 和 jQuery 问题

javascript - 试图通过函数传递 `this`

php - 在 mySQL 数据库中存储时间范围并与当前时间进行比较

javascript - 问 : PHP Multiple Modal in a button of while loop

javascript - Backbone Collection 和 Marionette CompositeView 中未定义的模型原型(prototype)

javascript - Google App Script,JavaScript FileReader 不是函数

javascript - 当指令似乎没有使用 Controller 函数中的依赖项时,删除它们是否安全?