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 ?