我正在尝试找出是否有一种方法可以使用默认参数的对象分解,而不必担心部分定义了对象。考虑以下:
(function test({a, b} = {a: "foo", b: "bar"}) {
console.log(a + " " + b);
})();
{a: "qux"}
例如,当我用调用时,我会qux undefined
在控制台中看到真正想要的时间qux bar
。有没有一种方法可以实现而无需手动检查对象的所有属性?
Answers:
是。您也可以在解构中使用“默认值”:
(function test({a = "foo", b = "bar"} = {}) {
console.log(a + " " + b);
})();
这不限于函数参数,而是适用于每个解构表达式。
undefined
,但还是错误,如果b
是null
正确的?任何方式,以防止双方undefined
和null
解构的时候?例如:{a: "qux", b: null}
仍然会出错。
undefined
-null
必须显式完成传递,因此会导致错误。要处理null
和undefined
,请使用b == null ? "bar" : b
函数内部的标准。