Object.defineProperties
Object.defineProperties(obj , props)
Object.defineProperty
Object.defineProperty (obj , prop , descriptor)
JAVASCRIPT
(Programmation Internet)
Po u r D é b u t an t
J.B. Dadet DIASOLUKA Luyalu Nzoyifuanga
+243 - 851278216 - 899508675 - 995624714 - 902263541 - 813572818
La dernière révision de ce texte est disponible sur CD.
I. Object . defineProperties
« Object . defineProperties ( ) », méthode de l’objet transcendant
« Object », permet de créer (définir) une ou plusieurs nouvelle(s) pro-
priété(s), ou de modifier une ou plusieurs autres propriété préexistantes
d’un objet donné, en retournant l’objet modifié.
Syntaxe :
Object.defineProperties(obj, props)
« obj » : objet (soit-il vide) auquel on veut ajouter ou dont on veut modi-
fier une ou plusieurs propriétés.
« props » encore un objet, dont les clés (membres ou éléments) sont les
attributs ou « descripteurs » (énumérables), des propriétés qu’on veut
modifier ou ajouter.
const obj = {};
Object.defineProperties(obj, {
property1: {
value: "prop1Value",
attributs
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-V
defineProperty, defineProperties - 2/17 - vendredi, 31. mai 2019
},
property2: {}
});
« Object . defineProperties ( ) » : version à deux arguments, le premier
argument étant l’objet en question, et le deuxième étant un objet qui ren-
ferme les propriétés à définir ou à redéfinir.
Les descripteurs (à définir ou à redéfinir) sont eux-mêmes des objets
pouvant être des « data descriptors » ou des « accessor descriptors ».
Ils doivent obligatoirement avoir les deux clés (membres ou éléments)
suivantes (REQUIRED keys) :
1. configurable : si « true », le type du descripteur de cette pro-
priété peut être modifié [ses attributs value, writable, configu-
rable, enumerable, set(), get()], et cette propriété peut être sup-
primée de l’objet.
Valeur par défaut = false.
2. enumerable : si « true », la propriété s’affiche lors d’une énu-
mération des propriétés de l’objet, avec une boucle « forin »
ou avec les méthodes « Object . keys » ou « getOwnProper-
tyNames() ».
Valeur par défaut = false.
Les deux clés suivantes des descripteurs sont optionnelles (OPTIO-
NAL keys) :
3. value : la valeur associée à lobjet, celle qui est automatiquement
affichée quand on lit la valeur de lobjet, ou quon modifie lors
dune affectation (toute valeur JavaScript valide : number, object,
function, etc.).
Par exemple avec
« console . log ( objet . property ) » ou
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-V
defineProperty, defineProperties - 3/17 - vendredi, 31. mai 2019
« objet . property = val ».
Valeur par défaut = undefined.
4. writable : Si « true », on peut directement affecter une nouvelle
valeur à la propriété, avec un opérateur d’affectation.
Valeur par défaut = false.
5. get : Fonction jouant le rôle de « getter » pour la propriété. La
valeur quelle retourne est la valeur de la propriété. Valeur par
défaut = undefined.
6. set : Fonction jouant le rôle de « setter » pour la propriété. Son
unique argument est la nouvelle valeur à affecter à la propriété.
Valeur par défaut = undefined.
<script type="text/javascript"> "use strict";
const objet = {};
let r = Object.defineProperties(objet, {
property1: {
value: "prop1Value",
writable: true,
enumerable: false
}
,
property2: {
value: "prop2Value"
}
,
property3: {
value: "prop3Value",
writable: true,
configurable: true
}
});
console.log(r);
console.log(
objet.property1,
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-V
defineProperty, defineProperties - 4/17 - vendredi, 31. mai 2019
objet.property2,
objet.property3);
</script>
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-V
defineProperty, defineProperties - 5/17 - vendredi, 31. mai 2019
II. Object . defineProperty
Avant de définir une [nouvelle] propriété ou méthode, il faut vérifier si
cette méthode n’existe pas déjà. Mais attention, tous les browsers ne se
comportent pas de la même façon :
<script>
console.log(Array.reverse);
console.log([].reverse);
console.log(Boolean(Array.reverse));
console.log(Boolean([].reverse));
if(Array.reverse) console.log("« Array.reverse »
existe");
else console.log("« Array.reverse » indéfinie");
if([].reverse) console.log("« [].reverse » existe");
else console.log("« [].reverse » indéfinie");
console.log();
console.log(Array.dummy);
console.log([].dummy);
console.log(Boolean(Array.dummy));
console.log(Boolean([].dummy));
if(Array.dummy) console.log("« Array.dummy » existe");
else console.log("« Array.dummy » indéfinie");
if([].dummy) console.log("« [].dummy » existe");
else console.log("« [].dummy » indéfinie");
</script>
Avec Firefox Quantum version 66.0.3 :
1 / 17 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !