Rumah  >  Artikel  >  hujung hadapan web  >  Pemusnahan dalam parameter fungsi

Pemusnahan dalam parameter fungsi

WBOY
WBOYasal
2024-08-29 10:36:02583semak imbas

Destructuring in function parameters

Katakan saya mempunyai projek dalam three.js dan saya memerlukan beberapa geometri, saya akan hardcode pelbagai objek yang akan mengandungi nilai x,y, dan z mereka serta nilai lebar, tinggi dan kedalamannya tetapi tatasusunan ini mungkin datang daripada pelayan atau API pihak ketiga =>

const geometriesRaw = [
    {
      color: 0x44aa88,
      x: 0,
      y: 1,
      z: 0,
      width: 1,
      height: 1,
      depth: 1
    },
    {
      color: 0x8844aa,
      x: -2,
      y: 1,
      z: 0,
      width: 1.5,
      height: 1.5,
      depth: 1.5
    }

  ];

Kemudian saya akan menjadikannya menggunakan Array. fungsi peta =>

  const cubes = geometriesRaw.map((cube)=>{
    <mesh position={[cube.x, cube.y, cube.z]}>
        <boxGeometry args={[cube.width, cube.height, cube.depth]} /> 
        <meshPhongMaterial color={cube.color} /> 
      </mesh>
  }) 

Hanya dengan sepintas lalu kita dapat menyedari keterlaluan kod ini, mengulangi kiub hujah setiap kali.
Satu lagi bendera merah ialah tiada kejelasan tentang sifat yang kami gunakan daripada tatasusunan, contohnya, z ialah 0 dalam kedua-dua kes dan ia mungkin akan menjadi sifar dalam kebanyakan kes.
Untuk kes penggunaan biasa kami, kami tidak sepatutnya mendedahkan sifat ini kepada fungsi kami, ini juga boleh berlaku dengan kerap dengan sifat kedalaman.

Atas sebab itu, pilihan terbaik ialah memusnahkan sifat yang datang daripada tatasusunan objek seperti berikut =>

 const cubes = geometriesRaw.map(({x,y, width, color})=>{
    <mesh position={[x, y, 0]}>
        <boxGeometry args={[width, 1, 1]} /> 
        <meshPhongMaterial color={color} /> 
      </mesh>
  }) 

Kini kami hanya menggunakan x,y, lebar, warna. Dengan cara ini kami membayangkan bahawa z, ketinggian dan kedalaman adalah sifat lalai dalam fungsi kami dan kami tidak memerlukannya daripada data yang datang daripada pelayan kami atau pihak ketiga

Dengan cara ini kami menyembunyikan sifat untuk pembangun masa depan yang akan berinteraksi dengan pemalar kiub kami, hanya menunjukkan kepada mereka yang kami perlukan daripada sumber luaran dan yang kami tetapkan sebagai lalai untuk amalan yang lebih baik yang boleh kami tulis
const z = 0
...
dalam fungsi kami untuk menjadikannya lebih jelas

Atas ialah kandungan terperinci Pemusnahan dalam parameter fungsi. 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