J.B. Dadet DIASOLUKA Luyalu Nzoyifuanga
JAVASC RI PT
(Programmation Internet)
VOL. VI
+243 - 851278216 - 899508675 - 995624714 - 902263541 - 813572818
CHAPITRE 11 : LES PROPRIÉTÉS:
On peut accéder aux propriétés d’un objet de plusieurs façons :
1 Par le nom de la propriété. entre guillemets dans des crochets
2 Par le nom de la propriété précédé d’un point
3 Par un index
<script type="text/javascript">
"use strict";
var dObj = {
couleur:"rose",
50: "Cinquante",
age:45,
[2]:function(){console.log("Hello")},
3: "Trois",
["quatre"]:function(){console.log("quatre")}
}
// var dObj = new dObj();
console.log(dObj["couleur"])
console.log(dObj["50"])
console.log(dObj.age)
dObj[2]()
console.log(dObj[3])
dObj["quatre"]()
console.log("=====")
for(var i in dObj)console.log(i+". "+dObj[i])
console.log(Object.values(dObj))
console.log(">===<")
for(i in dObj)console.log(dObj[i])
</script>
Exécution :
rose test.html:14:3
Cinquante test.html:15:3
J.D.B. DIASOLUKA Nz.
Luyalu
JavaScript Tome-VI
Variables & Functions
- 2 / 14 - mardi, 2. octobre 2018 (12:06 )
45 test.html:16:3
Hello test.html:7:23
Trois test.html:18:3
quatre test.html:9:30
===== test.html:20:3
2. function(){console.log("Hello")} test.html:21:21
3. Trois test.html:21:21
50. Cinquante test.html:21:21
couleur. rose test.html:21:21
age. 45 test.html:21:21
quatre. function(){console.log("quatre")}
test.html:21:21
Array [
dObj(), "Trois", "Cinquante", "rose", 45, dObj()
] test.html:22:3
>===< test.html:23:3
dObj()
length: 0
name: "2"
prototype: Object { … }
__proto__: function () test.html:24:17
Trois test.html:24:17
Cinquante test.html:24:17
rose test.html:24:17
45 test.html:24:17
dObj() test.html:24:17
length: 0
name: "quatre"
prototype: Object { … }
__proto__: function ()
Parcourir les éléments d’une collection / itération (array, object...) avec
un itérateur comme “ keys ”!
Object.keys -> function keys()
Array.prototype.keys -> function keys()
<script type="text/javascript"> "use strict";
let _arr = ['ally', 'belly', 'chore'];
let our_Aiterator = _arr.keys();
console.log(our_Aiterator); // Array Iterator { }
for (let i of our_Aiterator) {
console.log(i,_arr[i]); // 0 ally , 1 belly , 2 chore
}
let our_Aiterator2 = Object.keys(_arr);
console.log(our_Aiterator2); // Array [ "0", "1", "2" ]
J.D.B. DIASOLUKA Nz.
Luyalu
JavaScript Tome-VI
Variables & Functions
- 3 / 14 - mardi, 2. octobre 2018 (12:06 )
for (let i of our_Aiterator2) {
console.log(i,_arr[i]); // 0 ally , 1 belly , 2 chore
}
let _obj =
{"5":'ally', b:'belly', 3:'chore', _obj:45};
// « let _obj » et « _obj:45 == _obj._obj=45 »
// ne partagent pas le même Name Space et
// n'interfêrent donc pas.
console.log(_obj);
// Object { 3: "chore", 5: "ally", b: "belly", _obj: 45 }
console.log(_obj._obj); // 45
let our_Oiterator = Object.keys(_obj);
console.log(our_Oiterator);
// Array [ "3", "5", "b", "_obj" ]
for (let i of our_Oiterator) {
console.log(i,_obj[i]);
// 3 chore , 5 ally , b belly , _obj 45
}
</script>
CHAPITRE 12 : LES PROPRIÉTÉS ET LEURS ATTRIBUTS:
Les propriétés sont des objets dont les propriétés sont leurs attributs.
Sur https://www.ecma-international.org/ecma-262/8.0 nous lisons ceci :
6.1.7.1 Property Attributes
Attributes are used in this specification to define and explain the state of
Object properties. A data property associates a key value with the attrib-
utes listed in Table 2.
Table 2: Attrib-
utes of a Data
Property At-
tribute Name
Value Domain
Description
J.D.B. DIASOLUKA Nz.
Luyalu
JavaScript Tome-VI
Variables & Functions
- 4 / 14 - mardi, 2. octobre 2018 (12:06 )
[[Value]] Any
ECMAScript
language type
The value retrieved by a get access
of the property.
[[Writable]] Boolean If false, attempts by ECMAScript
code to change the property's [[Val-
ue]] attribute using [[Set]] will not
succeed.
[[Enumerable]] Boolean If true, the property will be enumer-
ated by a for-in enumeration (see
13.7.5). Otherwise, the property is
said to be non-enumerable.
[[Configurable]]
Boolean If false, attempts to delete the prop-
erty, change the property to be an
accessor property, or change its at-
tributes (other than [[Value]], or
changing [[Writable]] to false) will
fail.
Comme dit ci-dessus, [[value]] est la valeur que vous attribuez ou at-
tendez de l’objet.
Une propriété ayant « false » comme valeur de l’attribut Enumerable
ne figurera pas dans la liste des propriété de l’objet, générée avec
for (var in object).
<script type="text/javascript"> "use strict";
// Dêfinition de propriê lors de la crêation
var obj = {nom:"nomEl",matr:45};
console.log(Object.getOwnPropertyDescriptors(obj));
// Object { nom: {…}, matr: {…} }
// {…}
// matr: Object { value: 45, writable: true, enumerable:
true, … }
// nom: Object { value: "nomEl", writable: true, enumer-
able: true, … }
// {…}
// matr: {…}
J.D.B. DIASOLUKA Nz.
Luyalu
JavaScript Tome-VI
Variables & Functions
- 5 / 14 - mardi, 2. octobre 2018 (12:06 )
// configurable: true
// enumerable: true
// value: 45
// writable: true
// nom: {…}
// configurable: true
// enumerable: true
// value: "nomEl"
// writable: true
console.log(obj["nom"], obj.matr);
// nomEl 45
// [Re]Dêfinition brêve avec defineProperty
Object.defineProperty(obj, 'defProp', {
value: "definedProp" });
console.log(obj["nom"], obj['matr'], obj.matr,
obj.defProp);
// nomEl 45 45 definedProp
console.log(Object.getOwnPropertyDescriptor(obj,"nom"));
// Object { value: "nomEl", writable: true, enumerable:
true, configurable: true }
// {…}
// configurable: true
// enumerable: true
// value: "nomEl"
// writable: true
console.log(Object.getOwnPropertyDescriptor(
obj,"defProp"));
// Object { value: "definedProp", writable: false, enumer-
able: false, configurable: false }
// {…}
// configurable: false
// enumerable: false
// value: "definedProp"
// writable: false
</script>
Ci-dessous, voici comment on peut manipuler ces attributs :
1er Définir une propriété : avec la méthode Object.defineProperty
Object.defineProperty([objet], [property-key], { val-
ue: [property-value] })
1 / 14 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 !