Rumah  >  Artikel  >  hujung hadapan web  >  Bolehkah Anda Memusnahkan Objek Sedia Ada dalam JavaScript ES6?

Bolehkah Anda Memusnahkan Objek Sedia Ada dalam JavaScript ES6?

Barbara Streisand
Barbara Streisandasal
2024-10-28 15:03:30506semak imbas

Can You Destructure Onto an Existing Object in JavaScript ES6?

Bolehkah Anda Memusnahkan Objek Sedia Ada dalam JavaScript ES6?

Memusnahkan ialah ciri berguna yang diperkenalkan dalam ES6 yang membolehkan pengekstrakan data yang mudah daripada objek dan tatasusunan. Walau bagaimanapun, persoalan biasa timbul: adakah mungkin untuk memusnahkan objek sedia ada?

Pertimbangkan senario berikut: anda mempunyai dua objek, foo dan oof. Anda ingin memindahkan nilai x dan y dari foo ke oof. Walaupun penstrukturan nampaknya merupakan alat yang ideal untuk tugasan ini, anda mungkin tertanya-tanya jika ada cara untuk mencapainya secara langsung dengan sintaks pemusnahan ES6.

Mencuba Pemindahan Terus:

Secara intuitif, anda mungkin terfikir untuk menggunakan sintaks seperti oof{x,y} = foo, tetapi malangnya, ini tidak berfungsi. Sebaliknya, JavaScript menjangkakan pembolehubah baharu akan diisytiharkan di sebelah kiri pengendali tugasan.

Penyelesaian Mengelak:

Untuk memintas pengehadan ini, anda boleh menggunakan penyelesaian yang agak tidak konvensional tetapi berkesan:

({x: oof.x, y: oof.y} = foo);

Baris ini membaca nilai x dan y daripada foo dan menetapkannya ke lokasi masing-masing dalam oof. Walaupun pendekatan ini mungkin bukan yang paling elegan, ia mencapai matlamat yang diingini.

Pilihan Alternatif:

Untuk pendekatan yang lebih tradisional, pertimbangkan alternatif berikut:

  • Tugasan Eksplisit:
oof.x = foo.x;
oof.y = foo.y;
  • Menggunakan untukSetiap:
['x', 'y'].forEach(prop => oof[prop] = foo[prop]);

Kaedah ini mungkin lebih mudah dan mengekalkan kebolehbacaan.

Ringkasan:

Menyahstruktur pada objek sedia ada tidak disokong secara langsung dalam sintaks pemusnahan ES6. Walau bagaimanapun, anda boleh menggunakan teknik yang diberikan untuk mencapai hasil yang diinginkan, atau memilih pendekatan tugasan tradisional jika kejelasan adalah keutamaan. Sama ada ({x: oof.x, y: oof.y} = foo);, oof.x = foo.x; oof.y = foo.y;, atau kaedah lain, pilihan bergantung pada pilihan dan konteks anda.

Atas ialah kandungan terperinci Bolehkah Anda Memusnahkan Objek Sedia Ada dalam JavaScript ES6?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn