"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Améliorez votre JS : améliorations du littéral d'objet qui modifieront votre code

Améliorez votre JS : améliorations du littéral d'objet qui modifieront votre code

Publié le 2024-11-06
Parcourir:587

Level Up Your JS: Object Literal Enhancements That Will Change Your Code

Les littéraux d'objet sont un élément fondamental de JavaScript, nous permettant de créer et d'initialiser des objets rapidement. Avec ES6 et versions ultérieures, JavaScript a introduit plusieurs améliorations des littéraux d'objet, les rendant encore plus puissants et concis. Examinons ces améliorations et voyons comment elles peuvent rendre notre code plus propre et plus efficace.

1. Noms de propriétés abrégés

Lors de la création d'un objet, si le nom de la propriété est le même que le nom de la variable que vous lui attribuez, vous pouvez utiliser une syntaxe abrégée.

const name = 'John';
const age = 30;

// Old way
const person = {
    name: name,
    age: age
};

// New way
const person = { name, age };

console.log(person); // { name: 'John', age: 30 }

Cette syntaxe abrégée réduit les répétitions et rend notre code plus concis.
Documentation MDN : initialiseur d'objet

2. Noms des méthodes abrégées

De même, lors de la définition de méthodes dans un objet, nous pouvons omettre le mot-clé function et les deux-points.

// Old way
const calculator = {
    add: function(a, b) {
        return a   b;
    }
};

// New way
const calculator = {
    add(a, b) {
        return a   b;
    }
};

console.log(calculator.add(5, 3)); // 8

Cette syntaxe est plus claire et plus facile à lire, surtout lorsque vous avez plusieurs méthodes dans un objet.
Documentation MDN : définitions de méthodes

3. Noms de propriétés calculés

ES6 nous permet d'utiliser des expressions pour calculer les noms de propriétés. Ceci est particulièrement utile lorsque vous souhaitez créer des noms de propriétés dynamiques.

const prefix = 'user_';
const id = 1234;

const user = {
    [`${prefix}${id}`]: 'John Doe'
};

console.log(user.user_1234); // 'John Doe'

Cette fonctionnalité est puissante lorsque vous devez créer des objets avec des clés dynamiques basées sur une logique ou des données externes.
Documentation MDN : noms de propriétés calculés

4. Propriétés de la méthode

ES6 a introduit une nouvelle façon de définir des méthodes dans les littéraux d'objet à l'aide des mots-clés get et set. Cela vous permet de créer des propriétés calculées sans appeler explicitement une fonction.

const person = {
    firstName: 'John',
    lastName: 'Doe',
    get fullName() {
        return `${this.firstName} ${this.lastName}`;
    },
    set fullName(name) {
        [this.firstName, this.lastName] = name.split(' ');
    }
};

console.log(person.fullName); // 'John Doe'
person.fullName = 'Jane Smith';
console.log(person.firstName); // 'Jane'
console.log(person.lastName); // 'Smith'

Les getters et setters fournissent un moyen simple de définir des propriétés calculées et peuvent être utilisés pour ajouter une validation ou des effets secondaires lors de l'obtention ou de la définition de valeurs.
Documentation MDN : Getter et Setter

5. Opérateur de propagation d'objet

Bien qu'il ne fasse pas strictement partie de l'amélioration des littéraux d'objet, l'opérateur de propagation (...) est une fonctionnalité puissante qui fonctionne bien avec les littéraux d'objet. Il vous permet de cloner facilement des objets ou de fusionner plusieurs objets.

const defaults = {
    theme: 'light',
    fontSize: 14
};

const userPreferences = {
    fontSize: 16
};

const settings = {
    ...defaults,
    ...userPreferences
};

console.log(settings); // { theme: 'light', fontSize: 16 }

L'opérateur spread facilite la création de nouveaux objets basés sur ceux existants, ce qui est particulièrement utile pour maintenir l'immuabilité dans vos applications.
Documentation MDN : Syntaxe de diffusion (...)

Conclusion

Ces améliorations du littéral d'objet dans JavaScript offrent aux développeurs des moyens plus expressifs et concis de travailler avec des objets. En tirant parti de ces fonctionnalités, vous pouvez écrire un code plus propre, plus lisible et plus facile à maintenir.

N'oubliez pas que même si ces fonctionnalités sont puissantes, il est important de les utiliser judicieusement. Privilégiez toujours la lisibilité et la maintenabilité du code plutôt que la brièveté.


Compatibilité du navigateur

Voici un aperçu rapide de la prise en charge par le navigateur de ces fonctionnalités :

Fonctionnalité Chrome Firefox Safari Bord
Propriétés abrégées 43 33 9 12
Méthodes abrégées 43 34 9 12
Noms de propriétés calculés 43 34 8 12
Méthodes Getter/Setter 1 1,5 3 12
Propagation d'objet 60 55 11.1 79

Cas d'utilisation pratiques

  1. Propriétés abrégées : idéal pour créer des objets à partir de variables existantes, en particulier dans les accessoires des composants React.
  2. Méthodes abrégées : utiles dans les structures de type classe ou lors de la définition de plusieurs fonctions associées.
  3. Noms de propriétés calculés : idéal pour créer des clés dynamiques dans les objets d'internationalisation (i18n).
  4. Méthodes Getter/Setter : parfaites pour créer des propriétés « intelligentes » avec validation intégrée ou effets secondaires.
  5. Object Spread : Excellent pour la gestion de l'état dans Redux ou pour créer de nouveaux objets avec de légères modifications.

Considérations relatives aux performances

Bien que ces améliorations n'aient généralement pas d'implications significatives en termes de performances, l'opérateur de répartition d'objets peut être moins efficace que Object.assign() pour fusionner de nombreuses propriétés. Dans la plupart des cas d'utilisation, l'avantage en matière de lisibilité l'emporte sur les différences mineures de performances.

Fonctionnalités associées

Pour améliorer davantage votre compréhension de la manipulation d'objets JavaScript modernes, envisagez d'explorer :

  • Mission de déstructuration
  • Méthode Object.assign()
  • Méthodes Object.entries(), Object.values() et Object.keys()
  • Les méthodes Object.freeze() et Object.seal() pour l'immuabilité des objets

En maîtrisant ces améliorations du littéral objet et les fonctionnalités associées, vous serez bien équipé pour écrire du code JavaScript plus élégant et plus efficace.

Si vous trouvez cet article utile, cliquez sur le bouton Suivre pour obtenir plus de mises à jour et de ressources utiles sur JavaScript, Reactjs et Next.js. Vous pouvez également me suivre sur Twitter @OgDev-01 pour obtenir des ressources utiles et des tendances technologiques ou sur OpenSauced pour voir quelles contributions j'ai apportées et celles que je mets en avant !

Déclaration de sortie Cet article est reproduit sur : https://dev.to/og_dev/level-up-your-js-object-literal-enhancements-that-will-change-your-code-jbc?1 En cas de violation, veuillez contacter study_golang@163 .comdelete
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3