Bonjour,
J'aurais voulu savoir quelle est la façon la plus propre de faire des classes en Javascript ?
Merci des réponses![]()
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
Ensuite, tu peux bien sûr "émuler" des classes soit avec un objet littéral soit avec une fonction constructeur.
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum
Y'en n'a pas, les classes n'existent pas en javascript ...
[edit]
grillé mais cohérent
[\edit]
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
Ca c'est bien une classe en utilisant prototype :
On triche un peu mais bon.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
Pour faire avancer le schmilblik :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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);
Envoyé par sylvain230
Code : Sélectionner tout - Visualiser dans une fenêtre à part function maClasse() {...}
tu peux bien sûr "émuler" des classes soit avec un objet littéral soit avec une fonction constructeur.
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum
un téléchargement illégal de reggae ?
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
c'est de l'emule à Sion
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
Ben oui c'est aussi ce que je pense.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.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.
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum
é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
Partager