Bonjour,
J'aurais voulu savoir quelle est la façon la plus propre de faire des classes en Javascript ?
Merci des réponses :)
Version imprimable
Bonjour,
J'aurais voulu savoir quelle est la façon la plus propre de faire des classes en Javascript ?
Merci des réponses :)
Etant donné que les classes n'existent pas en JavaScript, il n'y a pas de méthode propre ou non :aie:
Ensuite, tu peux bien sûr "émuler" des classes soit avec un objet littéral soit avec une fonction constructeur.
Y'en n'a pas, les classes n'existent pas en javascript ...
[edit]
grillé mais cohérent
[\edit]
Ca c'est bien une classe en utilisant prototype :
On triche un peu mais bon.Code:
1
2
3
4
5
6
7
8
9
10
11
12 function maClasse() { this.attribut1; this.attribut2; } maClasse.prototype.methodeA() = function() { // code } maClasse.prototype.methodeB() = function() { // code }
Je ne sais pas si cette méthode est "propre".
c'est une émulation
Pour faire avancer le schmilblik :
Code:
1
2
3
4
5
6
7
8
9
10 function MaClasse() { var variablePrivee = "priv"; this.variablePublique = "pub"; this.getPriv = function() { return variablePrivee; } } var instance = new MaClasse(); alert(instance.variablePublique+"\n"+instance.getPriv()+"\n"+instance.variablePrivee);
Citation:
Envoyé par sylvain230
:koi:Code:function maClasse() {...}
Citation:
tu peux bien sûr "émuler" des classes soit avec un objet littéral soit avec une fonction constructeur.
un téléchargement illégal de reggae ?
Pourquoi tu dis ca ?
c'est de l'emule à Sion
Ben oui c'est aussi ce que je pense.Citation:
Parce que entre l'exemple que j'ai donné et une vraie classe Java, y'a pas énormément de différence.
A vrai dire, oui et non.Citation:
Envoyé par Loceka
C'est vrai que dans ton exemple, on se rapproche d'une classe, mais c'est oublier que le modèle objet de JavaScript est par prototype et non par classe.
Par exemple, il est préférable d'utiliser le prototype comme le fait sylvain230 dans l'exemple de son premier message que de définir des fonctions dans le constructeur car cette dernière méthode oblige à définir cette fonction pour chaque instance de l'objet alors qu'avec le prototype, la fonction n'est définie qu'une seule fois.
Aussi, tu n'as pas de fonction d'initialisation exécutée à la création de l'instance, il te faut donc la déclarer et la lancer "manuellement".
Enfin, même si tu peux faire comme si c'était le cas en jouant sur la portée des variables locales, la notion de visibilité n'est pas prise en charge par JavaScript.
Ceci dit, je t'accorde que ça reste très théorique et que concrètement cela peut s'apparenter à des classes, mais il est selon moi préférable de rester dans l'esprit du modèle JavaScript et de privilégier le prototypage.
émuler les classes
c'est aussi oublier que quelque soit l'objet créé si on modifie le prototype après sa création il hérite de la modification
que tout objet dérivant d'une classe peut ne plus en avoir les caractéristiques
car tout objet est modifiable dans ça durée de vie tant dans ces donnée comme en java que dans ses méthodes.
A+JYT