Rechercher : dans
Par :

Heritage JavaScript avec prototype.js

Dernière réponse le 4 déc 2007 à 10:51:55 diva_69, le 4 déc 2007 à 10:43:53 
 Signaler ce message aux modérateurs

Bonjour,
J'essai de faire de l'heritage avec l'API prototype.js mais je n'y arrive pas.

<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 ?

Meilleures réponses pour « Heritage JavaScript avec prototype.js » dans :
Librairies Javascript (Prototype/Scriptaculous/Yahoo UI, etc.) Voir Pourquoi réinventer la roue alors qu'il existe une multitude de librairies offrant des fonctionnalités avancées ? Néanmoins, devant la multitude de librairies, il vaut mieux savoir en quelques lignes quelles sont leurs fonctionnalités, leurs atouts...
Javascript - Les événements Voir Qu'appelle-t-on un événement? Les événements sont des actions de l'utilisateur, qui vont pouvoir donner lieu à une interactivité. L'événement par excellence est le clic de souris, car c'est le seul que le HTML gère. Grâce au Javascript il est...
Javascript - Modifier la hauteur (height) d'un élément HTML VoirPour modifier la hauteur d'un élément HTML en javascript, il suffit d'utiliser sa propriété de style "height". Pour cela vous pouvez y faire référence de la manière suivante : Si vous souhaitez connaître la hauteur (height) d'un bloc HTML, il...
Javascript - Librairies d'effets pour vos images VoirAu gré de vos explorations du web, vous avez vu de superbes effets de présentation des images. Et ça vous plairaît bien de pouvoir proposer les mêmes à vos visiteurs. Voici quelques solutions en Javascript couplées à des CSS. Elles sont plus...
Javascript - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. En Javascript, les noms de variables peuvent être aussi long que l'on désire,...
Javascript - L'objet Date VoirLes particularités de l'objet Date L'objet Date permet de travailler avec toutes les variables qui concernent les dates et la gestion du temps. Il s'agit d'un objet inclus de façon native dans Javascript, et que l'on peut toujours utiliser. La...
Javascript - l'objet Array VoirLes particularités de l'objet Array L'objet Array est un objet du noyau Javascript permettant de créer et de manipuler des tableaux. Voici la syntaxe à utiliser pour créer une variable tableau : var x = new Array(element1[, element2, ...]); Si...

1

 diva_69, le 4 déc 2007 à 10:51:55

Oups pardon c'est il faut remplacer

var temp2 = new DataWriter(); ---- par ----> var temp = new DataWriter();

Répondre à diva_69