Nesne yıkıcı bir görevdir. Benim gibi, bunu şaşırtıcı bulmuş olabilirsiniz çünkü ES6 nesnesi yıkıcı sözdizimi gibi görünüyor, ancak nesne değişmez yapısı gibi davranmıyor.
Karşılaştığınız çok kısa formu ve alanları ve varsayılan bağımsız değişkenleri yeniden adlandırmayı destekler:
Esasen, {oldkeyname: newkeyname = defaultvalue, ...}. ':' anahtar / değer ayırıcısı DEĞİLDİR; '=' dir.
Bu dil tasarım kararının bazı yan etkileri, aşağıdaki gibi şeyler yapmanız gerekebileceğidir.
({A, b} = some_object);
Ekstra parantezler, sol küme parantezlerinin bir blok olarak ayrıştırılmasını engeller ve baştaki noktalı virgül, parenlerin önceki satırdaki bir işleve yönelik bir işlev çağrısı olarak ayrıştırılmasını engeller.
Daha fazla bilgi için bkz:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
Dikkat edin, nesne yok etme ataması sırasında önemli hatalar ATILMAZ; İster önemli bir hata, ister sessizce "tanımsız" olarak yayılan başka bir hata olsun, "tanımlanmamış" değerlerle sonuçlanırsınız.
> var {rsienstr: foo, q: bar} = {p:1, q:undefined};
undefined
> foo
undefined
> bar
undefined
>