documentun nom et une valeur
var vide = {}
var point = {x:0, y:0};
var point2 ={x:point.x, y:point.y+1};
var livre = {
"titre" : "javascript",
"sous titre" : "facile !",
auteur : {
nom : Dupond,
prenom : "D" //pas de , après le dernier,
}
};
var point3 = {
x:0,
y:0,
affiche:function(){alert("("+this.x+","+this.y+")")}
};
var a= new Object(); var b= new Array(); ...
new est suivi d'une invocation de fonction.
function Point(x, y) {
this.x = x;
this.y = y;
}
p1 =new Point(2,3);
p2 =new Point(4,3);
point3.x; //x
point3["x"]; //autre écriture
//toutes les propriétés:
for (var i in point3){
alert("nom :"+i+ " , valeur"+ point3[i]);
}
a= point3.x;
point3.x=5;
//ajout a l'object (unique) point3
point3.distance=function (x1, y1) {
return Math.sqrt((x1 - this.x)*(x1 - this.x) + (y1 - this.y)*(y1 - this.y))
}
delete point3.distance;
Point.prototype.distance=function (x1, y1) {
return Math.sqrt((x1 - this.x)*(x1 - this.x)
}
p2.distance(3,2) //renvoie la distance de p2 (4,3) au point
(3,2)
Variable : nom qui fait référence à une valeur en mémoire.
en fait même les valeurs primitive peuvent être vues comme des objets :
alert(1["toString"]());
Quelques variables de portée globale pointant vers des valeurs primitives:
var name = "Dupond D."; var taille= "180"; var estProgrammeur =true; var aimeJavaScript = true; // Teste si deux variables référencent la même valeur estProgrammeur === aimeJavaScript; //renvoie true
liées a l'object globale (window) dans un navigateur
Objets : collection de référence à d'autre objets et à un prototype. La chaine de prototype permet d'acceder aux propriétés qui ne sont pas dans l'object mais dans "ses parents"
// Créer un point
var p = {
x:0,
y:0,
distance:function (x1, y1) {
return Math.sqrt((x1 - this.x)*(x1 - this.x) + (y1 - this.y)*(y1 - this.y))
}
}
// Créer un heritier
var prouge = Object.create(p);
// redefinir une propriété some properties locally
prouge.x = 2;
//ajouter une propiété
prouge.col = "red";
// chercher dans la chaine de prototype
prouge.distance(2,3);