Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > Prototype & Script.aculo.us
Prototype & Script.aculo.us Forum d'entraide sur les frameworks Prototype et Script.aculo.us
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 03/12/2007, 17h10   #1
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 36
Points : 11
Points : 11
Par défaut [POO] Heritage avec l'API Prototype

Bonjour,
Comment faire de l'heritage avec l'API Prototype ?

Merci d'avance
diva_69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 20h21   #2
Modérateur
 
Avatar de roro06
 
Inscription : avril 2007
Messages : 1 364
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : avril 2007
Messages : 1 364
Points : 1 551
Points : 1 551
Bonjour

ça se fait avec
__________________


" La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
(J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

Chuck Norris comprend JC Van Damme.
roro06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 10h13   #3
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 36
Points : 11
Points : 11
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
		<script type='text/javascript' >
				var FirstClass = Class.create();
				FirstClass.prototype = 
				{
				   initialize: function () 
				   {
				       this.data = "Hello World";
					   alert("constructeur appeler");
				   },
 
					message1: function () 
					{
				        alert("message1");
				    }
				};
 
				var DataWriter = Class.create();
				DataWriter.prototype = {
					message2: function () 
					{
				        alert("message1");
				    }
				};
				Object.extend(DataWriter, FirstClass);
		</script>
		<script type='text/javascript'>
			var temp2 = new DataWriter();
			temp.message1();
			temp.message2();
		</script>
Je crée deux classes "DataWriter" qui hérite de "FirstClass".
Voila ce qu'il ce passe :
- temp.message1(); --> appelle le constructeur de "FirstClass" et affiche alert("constructeur appeler");
- temp.message1(); --> alert("message1"); (la derivation a l'air de marcher)
- temp.message2(); --> erreur JavaScript (FireFox : "temp2.message2 is not a function"/ IE :"this.initialize a la valeur Null ou n'est pas un objet.")

Pourquoi cette erreur ? La derivation ne marche pas ?
diva_69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 10h42   #4
Modérateur
 
Avatar de roro06
 
Inscription : avril 2007
Messages : 1 364
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : avril 2007
Messages : 1 364
Points : 1 551
Points : 1 551
Moi, j'ai surtout
Citation:
temp is not defined
__________________


" La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
(J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

Chuck Norris comprend JC Van Damme.
roro06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 10h48   #5
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 36
Points : 11
Points : 11
Code :
<script type='text/javascript' src="prototype.js"></script>
Ta pas oublier d'inclure l'API prototype.js par hasard ?
( sa m'etonnerai mais bon ^^ )
diva_69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 10h52   #6
Modérateur
 
Avatar de roro06
 
Inscription : avril 2007
Messages : 1 364
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : avril 2007
Messages : 1 364
Points : 1 551
Points : 1 551
Blague à part, la syntaxe à utiliser est celle-ci :
Code :
1
2
3
4
5
6
                var DataWriter = Class.create();
                Object.extend(DataWriter, FirstClass);
                DataWriter.prototype.message2 =function () 
                    {
                        alert("message2");
                    }
__________________


" La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
(J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

Chuck Norris comprend JC Van Damme.
roro06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 10h56   #7
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 36
Points : 11
Points : 11
roro06 MERCI BEAUCOUP !

sa marche au poil !
diva_69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 11h05   #8
Modérateur
 
Avatar de roro06
 
Inscription : avril 2007
Messages : 1 364
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : avril 2007
Messages : 1 364
Points : 1 551
Points : 1 551


L'explication, tout de même :
avec
DataWriter.prototype = {...

Tu ecrase ce que tu as créé juste avant avec Object.extend

Alors qu'avec DataWriter.prototype.message2=function() ...

Tu rajoute une méthode à ton objet

(Penses au tag resolu, pour les copains ...)
__________________


" La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
(J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

Chuck Norris comprend JC Van Damme.
roro06 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 02h09.


 
 
 
 
Partenaires

Hébergement Web