Object Javascript

C'est LE type fondamental de javascript :

Une valeur composées qui regroupe plusieurs valeurs (primitive ou autres objets)

Une collection non ordonnée de propriétés

Creation d'objets littéraux


	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+")")}
	};

      

Creation avec New

Accès aux propriétés de l' objet

      point3.x;  //x

      point3["x"];  //autre écriture    

      //toutes les propriétés:
      for (var i in point3){
           alert("nom :"+i+ " , valeur"+ point3[i]);
          }
    

Objets Dynamiques

Ajouter à toute les instances produites par un constructeur

prototype

       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)
      

Compléments hors programme examen NFA016

On manipule des références

Variable : nom qui fait référence à une valeur en mémoire.

Valeurs :

en fait même les valeurs primitive peuvent être vues comme des objets :

alert(1["toString"]());

portée (scope) des variables

Variables globales

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

variables

portée (scope) des variables

Objet et chaîne de prototype

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