Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/09/2011, 00h42   #1
Nouveau Membre du Club
 
Inscription : mars 2010
Messages : 82
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 82
Points : 27
Points : 27
Par défaut Utilité de prototype

Bonjour,

J'ai du mal à comprendre l'utilité de prototype pour étendre un objet alors qu'on peut s'en passer.

Exemple :

Code :
1
2
3
4
5
6
7
var monObj = {
	attr1 : "nom",
	attr2 : "prenom",
	methode1 : function maFonction() { ... }
}
 
var instanceObj = new monObj();
Si je veux ajouter une nouvelle méthode à cet objet, j'ai deux solutions :
Code :
1
2
3
4
5
6
7
8
 
instanceObj.prototype.methode2 = function() {
	...
}
 
instanceObj.methode2 = function() {
	...
}
Où est la différence entre ces deux techniques ?

Merci.
chok371 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 08h53   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 040
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 040
Points : 45 141
Points : 45 141
prototype peut servir à l'extension d'objets natifs.
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 10h12   #3
Expert Confirmé Sénior
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 573
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 573
Points : 4 075
Points : 4 075
En ajoutant une propriété à l'objet, tu ne modifies que cet objet.
En ajoutant cette propriété à son prototype, tu ajoutes la méthode à tous les objets de ce type. En modifiant ton exemple pour différencier les méthodes :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var monObj = {
	attr1 : "nom",
	attr2 : "prenom",
	methode1 : function maFonction() { ... }
} 
var instanceObj = new monObj();
instanceObj.prototype.methode2 = function() {
	...
} 
instanceObj.methode3 = function() {
	...
}
var instanceObj2 = new monObj();
instanceObj2.methode2();// OK
instanceObj2.methode3();// erreur car undefined
__________________

...pour les linguistes et les curieux >>> générateur de phrases aléatoires

__________________
RomainVALERI est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/09/2011, 12h26   #4
Nouveau Membre du Club
 
Inscription : mars 2010
Messages : 82
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 82
Points : 27
Points : 27
Merci je comprends mieux
chok371 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h47.


 
 
 
 
Partenaires

Hébergement Web