Maison  >  Article  >  interface Web  >  Déstructuration dans les paramètres de fonction

Déstructuration dans les paramètres de fonction

WBOY
WBOYoriginal
2024-08-29 10:36:02670parcourir

Destructuring in function parameters

Disons que j'ai un projet dans three.js et que j'ai besoin de quelques géométries, je vais coder en dur un tableau d'objets qui contiendra leurs valeurs x, y et z ainsi que leurs valeurs de largeur, de hauteur et de profondeur, mais ce tableau pourrait provenir du serveur ou d'API tierces =>

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
    }

  ];

Ensuite, je les rendrai en utilisant le tableau. fonction de carte =>

  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>
  }) 

En un simple coup d'œil, nous pouvons nous rendre compte de la verbosité de ce code, en répétant l'argument cube à chaque fois.
Un autre signal d'alarme est le manque de clarté sur les propriétés que nous utilisons du tableau, par exemple, z vaut 0 dans les deux cas et il sera probablement zéro dans la grande majorité des cas.
Pour notre cas d'utilisation habituel, nous ne devrions pas exposer cette propriété à notre fonction, cela pourrait également se produire fréquemment avec la propriété de profondeur.

Pour cette raison, la meilleure option sera de déstructurer les propriétés provenant du tableau d'objets comme suit =>

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

Maintenant, nous utilisons simplement x, y, largeur, couleur. De cette façon, nous impliquons que z, la hauteur et la profondeur sont des propriétés par défaut dans notre fonction et que nous n'en avons pas besoin à partir des données provenant de notre serveur ou d'un tiers

De cette façon, nous masquons les propriétés pour les futurs développeurs qui interagiront avec la constante de nos cubes, en leur montrant simplement celles dont nous avons besoin provenant d'une source externe et celles que nous définissons par défaut pour une meilleure pratique que nous pouvons même écrire
const z = 0
...
à l'intérieur de notre fonction pour la rendre encore plus claire

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn