Maison > Article > interface Web > Maîtriser les objets JavaScript : techniques de comparaison, de manipulation et de contrôle
Les objets JavaScript sont incroyablement puissants et polyvalents. Ils nous permettent de stocker des données complexes et sont dotés d'un large éventail de méthodes intégrées pour faciliter la manipulation des données. Examinons quelques-unes des méthodes objets les plus utiles et comment elles se comparent les unes aux autres.
Comparer des objets directement avec === ne fonctionnera pas car JavaScript compare par référence, pas par valeur. Par exemple :
const obj1 = { a: 1 }; const obj2 = { a: 1 }; console.log(obj1 === obj2); // false
Pour comparer le contenu, utilisez une fonction de comparaison approfondie ou une bibliothèque comme Lodash.
Les descripteurs de propriétés fournissent des métadonnées sur les propriétés d'un objet. Par exemple :
valeur : valeur de la propriété
inscriptible : La valeur peut-elle être modifiée ?
énumérable : est-il visible en boucles ?
configurable : Peut-il être modifié ?
const obj = { name: "Alice" }; const descriptor = Object.getOwnPropertyDescriptor(obj, "name"); console.log(descriptor);
Object.keys() : renvoie un tableau des clés d'un objet.
Object.values() : renvoie un tableau de valeurs.
Object.entries() : renvoie un tableau de paires clé-valeur.
const person = { name: "Alice", age: 25 }; console.log(Object.keys(person)); // ["name", "age"] console.log(Object.values(person)); // ["Alice", 25] console.log(Object.entries(person)); // [["name", "Alice"], ["age", 25]]
Object.assign() copie les propriétés d'un objet à un autre. Il effectue uniquement une copie superficielle, il ne clone donc pas en profondeur les objets imbriqués.
const target = { a: 1 }; const source = { b: 2 }; Object.assign(target, source); console.log(target); // { a: 1, b: 2 }
Cette méthode crée un nouvel objet en utilisant un prototype spécifié. Utile pour l'héritage :
const personPrototype = { greet() { return `Hello, ${this.name}`; } }; const person = Object.create(personPrototype); person.name = "Alice"; console.log(person.greet()); // "Hello, Alice"
Cette méthode vérifie si deux valeurs sont identiques, même en distinguant entre 0 et -0 ou en comparant correctement NaN.
console.log(Object.is(+0, -0)); // false console.log(Object.is(NaN, NaN)); // true
Obtient les descripteurs de toutes les propriétés. Utile pour les copies complètes avec des descripteurs autres que ceux par défaut :
const obj = { name: "Alice" }; console.log(Object.getOwnPropertyDescriptors(obj));
Renvoie tous les noms de propriétés, y compris ceux non énumérables.
const obj = { a: 1 }; Object.defineProperty(obj, "b", { value: 2, enumerable: false }); console.log(Object.getOwnPropertyNames(obj)); // ["a", "b"]
Scelle un objet, permettant des modifications aux propriétés existantes mais aucun ajout ou suppression.
const obj = { name: "Alice" }; Object.seal(obj); obj.age = 30; // Fails console.log(obj); // { name: "Alice" }
Gèle un objet, empêchant toute modification.
const obj = { name: "Alice" }; Object.freeze(obj); obj.name = "Bob"; // Fails console.log(obj); // { name: "Alice" }
Ceci est utilisé pour copier les propriétés de plusieurs objets source vers un objet cible.
const obj1 = { a: 1 }; const obj2 = { a: 1 }; console.log(obj1 === obj2); // false
JavaScript fournit un arsenal de méthodes pour travailler avec des objets, chacune servant un objectif spécifique. En comprenant comment et quand utiliser ces méthodes, vous pouvez contrôler le comportement des objets, modifier leurs propriétés ou même les bloquer contre les modifications.
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!