1 / 8

Javascript les spécificités du langage - Partie 2-

Javascript les spécificités du langage - Partie 2-. Le prototypage des fonctions. Le prototypage est en quelques sortes un système d’héritage, cependant, pas comme on peut le voir dans les langages objets. Une fois un objet défini, il est alors possible d’y ajouter des

jorn
Download Presentation

Javascript les spécificités du langage - Partie 2-

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Javascriptles spécificités du langage- Partie 2-

  2. Le prototypage des fonctions Le prototypage est en quelques sortes un système d’héritage, cependant, pas comme on peut le voir dans les langages objets. Une fois un objet défini, il est alors possible d’y ajouter des propriétés ou des méthodes à l’extérieur même de l’objet et toutes les instances (ou copies) de cet objet auront accès à ces nouveaux attributs ou méthodes.

  3. Le prototypage des fonctions Vous pouvez ainsi très bien étendre un objet natif du langage comme String : String.prototype.positionCaractere = function(caractere) { var compteur = 0; for(var index=0;index<this.length;index++) { if(this.charAt(index)== caractere) compteur++; } return compteur; } var texte = "Hello"; //Va afficher 2 alert(texte. positionCaractere ('e'));

  4. Le prototypage des fonctions Voyons maintenant la différence entre le prototypage et l’ajout de propriété à l’instance. functionMonObjet() { this.maPropriete = 10; } // Crée une première instance var a = new MonObjet(); // crée une deuxième instance var b = new MonObjet(); // Prototype MonObjet MonObjet.prototype.nouvellePropriete = 12;

  5. Le prototypage des fonctions //Ajoute une nouvelle propriété à l'instance "a" a.nouvelAttribut = 8; // modifie une propriété de l'instance a // Affiche 12 alert(a.nouvellePropriete); // Affiche 8 alert(a.nouvelAttribut); // Affiche 12 alert(b.nouvellePropriete); // Affiche undefined alert(b.nouvelAttribut);

  6. Le prototypage des fonctions Le prototypage ne peut que se faire sur un objet qui va être instancié et disponible que pour ces instances, de même l’ajout de méthode ne peut que se faire sur une instance et non sur une instance d’instance.

  7. Le prototypage des fonctions var tab = [1,2,3]; Object.prototype.alert = function() { for(index in this) { alert(this[index]); } } // Affiche 1 // Affiche 2 // Affiche 3 // Affiche [Object] tab.alert();

  8. Le prototypage des fonctions Il n’y a hélas pas de solution propre en Javascript 1.5, la seule manière de palier à ce problème est de tester que le type de la variable n’est pas une fonction. Dans des versions plus évoluées de Javascriptil est possible d’ajouter des fonctions non énumérables aux objets grâce à «defineProperty ».

More Related