Saya terus melihat fungsi yang terlihat seperti ini dalam basis kode yang saya kerjakan:
const func = ({ param1, param2 }) => {
//do stuff
}
Apa sebenarnya yang dilakukannya ini? Saya kesulitan menemukannya di google, karena saya bahkan tidak yakin apa namanya, atau bagaimana menjelaskannya dalam pencarian google.
javascript
ecmascript-6
Nathan
sumber
sumber
Jawaban:
Ini merusak , tetapi terkandung di dalam parameter. Persamaannya tanpa destrukturisasi adalah:
sumber
Ini melewatkan objek sebagai properti.
Ini pada dasarnya adalah singkatan dari
Cara lain untuk menggunakan teknik ini tanpa parameter adalah sebagai berikut, mari pertimbangkan sejenak bahwa someObject memang berisi properti tersebut.
sumber
Ini adalah tugas yang merusak objek. Seperti saya, Anda mungkin merasa terkejut karena objek ES6 yang merusak sintaks terlihat seperti, tetapi TIDAK berperilaku seperti konstruksi literal objek.
Ini mendukung formulir yang sangat singkat yang Anda temui, serta mengganti nama bidang dan argumen default:
Pada dasarnya, ini adalah {oldkeyname: newkeyname = defaultvalue, ...}. ':' BUKAN pemisah kunci / nilai; '=' adalah.
Beberapa dampak dari keputusan desain bahasa ini adalah Anda mungkin harus melakukan hal-hal seperti itu
Tanda kurung ekstra mencegah kurung kurawal buka parsing sebagai blok, dan tanda titik koma mencegah tanda kurung diurai sebagai panggilan fungsi ke fungsi pada baris sebelumnya.
Untuk info lebih lanjut lihat: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
Hati-hati, kesalahan kunci selama tugas penghancuran objek JANGAN dilempar; Anda hanya akan mendapatkan nilai "tidak ditentukan", apakah itu kesalahan kunci atau kesalahan lain yang secara diam-diam disebarkan sebagai 'tidak ditentukan'.
sumber