document
un 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);