2014-10-26 10 views
39

Kısmen tanımlanmış nesne hakkında endişelenmeden varsayılan parametrelerin nesnel yıkımını kullanmanın bir yolu olup olmadığını anlamaya çalışıyorum. Aşağıdaki düşünün: ne gerçekten istediğiniz qux bar olduğundaES6 Nesne Yapılandırma Varsayılan Parametreler

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

Ben mesela {a: "qux"} ile bu aradığınızda, ben konsolda qux undefined görüyoruz. Tüm nesnenin özelliklerini el ile kontrol etmeden bunu başarmanın bir yolu var mı?

cevap

79

Evet.

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

Bu fonksiyon parametreleri ile sınırlı değildir, ama her kurucuların ifadesinde çalışır: Siz de kurucuların içinde "varsayılan" kullanabilirsiniz.

+2

Nifty! Varsayılanları yıkıcı tarafa koymanız (yaptığınız gibi) her zaman varsayılan parametre tarafında yapmam (her zamanki gibi) tercih edilir. Buna katılıyor musunuz? Dikkat etmeniz gereken bir şey var mı? – user3019273

+2

Ben birinin diğerinden "tercih" olduğunu sanmıyorum. Sadece başka bir şey yapar. – Bergi

+0

Çok iyi örnek – Leo