我想创建一个以对象作为参数
的函数
例如,对象可以有三个键: 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
我怎么能这样做?
答案 0 :(得分:6)
您可以在解构对象时指定单个默认值:
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,它描述了数组解构,但同样适用于对象。
答案 1 :(得分:0)
解构是什么意思?这是一个JavaScript表达式,它允许我们从数组,对象,映射和集合中提取数据到他们自己的变量中。它允许我们从一个对象或一个数组中的项中提取属性,一次多个。
简短形式:解构赋值语法是一个JavaScript表达式,可以将数组中的值或对象的属性解包为不同的变量。
请看一下这个简单的代码示例:
function yourFunction({
x = 1,
y = 2,
z = 3
} = {}) {
return x + y + z
}
out.innerHTML+="<br>" + yourFunction()
out.innerHTML+="<br>" + yourFunction({ x: 3, y: 3, z: 4 })
out.innerHTML+="<br>" + yourFunction({ x: 7, y: 1})
<p id="out">Results: </p>
查看文档:{{3}}