JavaScript Tutorial

Méthodes d’objet JavaScript ES5

ECMAScript 5 (2009) a ajouté de nombreuses nouvelles méthodes objet à JavaScript.

Gestion des objets

// Créer un objet avec un objet existant comme prototype
Objet.create()

// Ajout ou modification d’une propriété d’objet
Object.defineProperty(objet, propriété, descripteur)

// Ajout ou modification des propriétés d’un objet
Object.defineProperties(objet, descripteurs)

// Accéder aux propriétés
Object.getOwnPropertyDescriptor(objet, propriété)

// Renvoie toutes les propriétés sous forme de tableau
Object.getOwnPropertyNames(objet)

// Accéder au prototype
Objet.getPrototypeOf(objet)

// Retourne les propriétés énumérables sous forme de tableau
Objet.keys(objet)

Protéger des objets

// Empêche l’ajout de propriétés à un objet
Object.preventExtensions(objet)

// Renvoie true si des propriétés peuvent être ajoutées à un objet
Object.isExtensible(objet)

// Empêche les modifications des propriétés de l’objet (pas des valeurs)
Objet.sceau (objet)

// Renvoie true si l’objet est scellé
Object.isSealed(objet)

// Empêche toute modification d’un objet
Objet.freeze(objet)

// Renvoie true si l’objet est gelé
Object.isFrozen (objet)


Modification d’une valeur de propriété

Syntaxe

Object.defineProperty(objet, propriété, {valeur : valeur})

Cet exemple modifie une valeur de propriété :

Exemple

const personne = {
prénom : « John »,

nom : « Biche »,
langue : « EN »
} ;

// Changer une propriété
Object.defineProperty(person, « language », {value : « NO »});

Essayez-le vous-même »



Modification des métadonnées

ES5 permet de modifier les métadonnées de propriété suivantes :

writable : true // La valeur de la propriété peut être modifiée
enumerable : true // La propriété peut être énumérée
configurable : true // La propriété peut être reconfigurée

writable : false // La valeur de la propriété ne peut pas être modifiée
enumerable : false // La propriété ne peut pas être énumérée
configurable : false // La propriété ne peut pas être reconfigurée

ES5 permet de modifier les getters et les setters :

// Définition d’un getter
obtenir : fonction() { renvoyer la langue }
// Définition d’un setter
set : fonction(valeur) { langue = valeur }

Cet exemple rend le langage en lecture seule :

Object.defineProperty(person, « language », {writable:false});

Cet exemple rend le langage non énumérable :

Object.defineProperty(personne, « langue », {enumerable:false});


Liste de toutes les propriétés

Cet exemple répertorie toutes les propriétés d’un objet :

Exemple

const personne = {
prénom : « John »,

nom : « Biche »,
langue : « EN »
} ;

Object.defineProperty(personne, « langue », {enumerable:false});
Object.getOwnPropertyNames(personne); // Retourne un tableau de propriétés

Essayez-le vous-même »


Liste des propriétés énumérables

Cet exemple répertorie uniquement les propriétés énumérables d’un objet :

Exemple

const personne = {
prénom : « John »,

nom : « Biche »,
langue : « EN »
} ;

Object.defineProperty(personne, « langue », {enumerable:false});
Object.keys(personne); // Retourne un tableau de propriétés énumérables

Essayez-le vous-même »


Ajouter une propriété

Cet exemple ajoute une nouvelle propriété à un objet :

Exemple

// Crée un objet :
const personne = {
prénom : « John »,
nom : « Biche »,
langue : « EN »
} ;

// Ajouter une propriété
Object.defineProperty(person, « year », {value: »2008″});

Essayez-le vous-même »


Ajouter des getters et des setters

Le Object.defineProperty() peut également être utilisée pour ajouter des Getters et des Setters :

Exemple

//Créer un objet
const person = {firstName: »John », lastName: »Doe »} ;

// Définition d’un getter
Object.defineProperty(person, « fullName », {
get : function() {return this.firstName +  »  » + this.lastName ;}
});

Essayez-le vous-même »


Un contre-exemple

Exemple

// Définir l’objet
const obj = {compteur : 0} ;

// Définir les setters
Objet.defineProperty(obj, « réinitialiser », {
obtenir : fonction () {this.counter = 0;}
});
Object.defineProperty(obj, « incrément », {
obtenir : fonction () {this.counter++;}
});
Object.defineProperty(obj, « décrémenter », {
get : fonction () {this.counter–;}
});
Objet.defineProperty(obj, « ajouter », {
set : fonction (valeur) {this.counter += valeur ;}
});
Object.defineProperty(obj, « soustraire », {
set : fonction (i) {this.counter -= i;}
});

// Jouez avec le compteur :
obj.reset;
obj.add = 5 ;
obj. soustraire = 1 ;
obj.incrément ;
obj.decrement;

Essayez-le vous-même »

#Méthodes #dobjet #JavaScript #ES5

Articles similaires

Bouton retour en haut de la page