2014-10-26 109 views
39

我想弄清楚是否有一種方法可以使用對象解構的默認參數,而不必擔心被部分定義的對象。考慮以下幾點:ES6對象解構默認參數

(function test({a, b} = {a: "foo", b: "bar"}) { 
 
    console.log(a + " " + b); 
 
})();

當我把這種與{a: "qux"},比如,我看到qux undefined在控制檯當我真正想要的是qux bar。有沒有辦法實現這一點,而無需手動檢查所有對象的屬性?

回答

79

是的。您可以在解構,以及使用「默認值」:

(function test({a = "foo", b = "bar"} = {}) { 
 
    console.log(a + " " + b); 
 
})();

這並不侷限於函數的參數,但在每一個解構式的作品。

+2

漂亮!看起來像設置解構方面的默認值(你這樣做的方式)總是首選在默認參數端進行(像我一樣)。你會同意嗎?你能想到任何需要注意的事情嗎? – user3019273 2014-10-26 21:59:40

+2

我不認爲一方比另一方「偏好」。它只是做別的。 – Bergi 2014-10-26 22:01:07

+0

很好的例子 – Leo 2014-12-07 17:09:52