Tu peux faire de l'héritage propre en js, il suffit de savoir le faire. Il faut utiliser le prototype. Voici un exemple qui vous parlera puisqu'il utilise la syntaxe OO (le mot-clé
Mais si tu veux pouvoir avoir des variables (et donc des fonctions)
Maintenant j'aimerais connaître l'impact mémoire du fait de redéfinir la fonction say_hello pour chaque instance et comment c'est optimisé.
(edit:exemples tirés de la console donc pas forcément super niveau syntaxe)
Ah oui et j'oubliais le plus important : dire "Pas de classe = pas d'héritage" c'est FAAUUUUX !
new
)
MaClasse = {say_hello:function(){ console.log("hello, i'm ",this.name); } }
// Object {say_hello: function}
var Player = function(name) { this.name = name };
// undefined
Player.prototype = MaClasse
// Object {say_hello: function}
var John = new Player('joe');
// undefined
John.say_hello()
// hello, i'm joe
Mais si tu veux pouvoir avoir des variables (et donc des fonctions)
private
, voilà comment je fais un constructeur :var Player = function(name) {
var name = name;
return {
say_hello: function () {
console.log("hello, i'm", name);
}
}
};
// undefined
var Jack = Player('jackie')
// undefined
Jack.say_hello()
// hello, i'm jackie
Maintenant j'aimerais connaître l'impact mémoire du fait de redéfinir la fonction say_hello pour chaque instance et comment c'est optimisé.
(edit:exemples tirés de la console donc pas forcément super niveau syntaxe)
Ah oui et j'oubliais le plus important : dire "Pas de classe = pas d'héritage" c'est FAAUUUUX !