Maison >interface Web >js tutoriel >Pouvez-vous déstructurer un objet existant dans JavaScript ES6 ?

Pouvez-vous déstructurer un objet existant dans JavaScript ES6 ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-28 15:03:30930parcourir

Can You Destructure Onto an Existing Object in JavaScript ES6?

Pouvez-vous déstructurer un objet existant dans JavaScript ES6 ?

La déstructuration est une fonctionnalité pratique introduite dans ES6 qui permet une extraction pratique des données. à partir d'objets et de tableaux. Cependant, une question courante se pose : est-il possible de déstructurer sur un objet existant ?

Considérez le scénario suivant : vous avez deux objets, foo et oof. Vous souhaitez transférer les valeurs x et y de foo vers oof. Bien que la déstructuration semble être l'outil idéal pour cette tâche, vous pourriez être curieux de savoir s'il existe un moyen d'y parvenir directement avec la syntaxe de déstructuration ES6.

Tentative d'un transfert direct :

Intuitivement, vous pourriez penser à utiliser une syntaxe comme oof{x,y} = foo, mais malheureusement, cela ne fonctionne pas. Au lieu de cela, JavaScript s'attend à ce qu'une nouvelle variable soit déclarée sur le côté gauche de l'opérateur d'affectation.

Une solution de contournement :

Pour contourner cette limitation, vous pouvez recourir à une solution légèrement non conventionnelle mais efficace :

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

Cette ligne lit les valeurs x et y de foo et les affecte à leurs emplacements respectifs dans oof. Bien que cette approche ne soit peut-être pas la plus élégante, elle atteint l'objectif souhaité.

Options alternatives :

Pour une approche plus traditionnelle, envisagez les alternatives suivantes :

  • Affectation explicite :
oof.x = foo.x;
oof.y = foo.y;
  • Utilisation de forEach :
['x', 'y'].forEach(prop => oof[prop] = foo[prop]);

Ces méthodes sont peut-être plus simples et maintiennent la lisibilité.

En résumé :

La déstructuration sur un objet existant n'est pas directement prise en charge dans la syntaxe de déstructuration ES6. Cependant, vous pouvez utiliser la technique donnée pour obtenir le résultat souhaité ou opter pour des approches d'affectation traditionnelles si la clarté est une priorité. Que ce soit ({x: oof.x, y: oof.y} = foo);, oof.x = foo.x; oof.y = foo.y;, ou une méthode différente, le choix dépend de vos préférences et du contexte.

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