Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/05/2011, 11h28   #1
 
Avatar de sylvain230
 
Homme Sylvain
Poitiers
Inscription : mai 2008
Messages : 229
Détails du profil
Informations personnelles :
Nom : Homme Sylvain
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Poitiers
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : mai 2008
Messages : 229
Points : -3
Points : -3
Par défaut Classe Javascript propre

Bonjour,

J'aurais voulu savoir quelle est la façon la plus propre de faire des classes en Javascript ?

Merci des réponses
sylvain230 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 11h39   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 803
Points : 35 803
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 !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 11h39   #3
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 009
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 009
Points : 45 094
Points : 45 094
Y'en n'a pas, les classes n'existent pas en javascript ...

[edit]
grillé mais cohérent
[\edit]
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 11h43   #4
 
Avatar de sylvain230
 
Homme Sylvain
Poitiers
Inscription : mai 2008
Messages : 229
Détails du profil
Informations personnelles :
Nom : Homme Sylvain
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Poitiers
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : mai 2008
Messages : 229
Points : -3
Points : -3
Ca c'est bien une classe en utilisant prototype :

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
}
On triche un peu mais bon.
Je ne sais pas si cette méthode est "propre".
sylvain230 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 11h46   #5
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 009
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 009
Points : 45 094
Points : 45 094
c'est une émulation
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 11h46   #6
Membre Expert
 
Avatar de Loceka
 
Tlouye Ci
Inscription : mars 2004
Messages : 1 450
Détails du profil
Informations personnelles :
Nom : Tlouye Ci

Informations forums :
Inscription : mars 2004
Messages : 1 450
Points : 2 149
Points : 2 149
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);
Loceka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 11h46   #7
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 803
Points : 35 803
Citation:
Envoyé par sylvain230
Ca c'est bien une classe
Code :
function maClasse() {...}


Citation:
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 !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 11h52   #8
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 009
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 009
Points : 45 094
Points : 45 094
un téléchargement illégal de reggae ?
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 11h56   #9
Membre Expert
 
Avatar de Loceka
 
Tlouye Ci
Inscription : mars 2004
Messages : 1 450
Détails du profil
Informations personnelles :
Nom : Tlouye Ci

Informations forums :
Inscription : mars 2004
Messages : 1 450
Points : 2 149
Points : 2 149
Citation:
Envoyé par SpaceFrog Voir le message
un téléchargement illégal de reggae ?


Pas compris là...

Sinon avouez que c'est surtout une histoire de vocabulaire le fait que "ça n'existe pas en javascript". Parce que entre l'exemple que j'ai donné et une vraie classe Java, y'a pas énormément de différence.
Loceka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 11h56   #10
 
Avatar de sylvain230
 
Homme Sylvain
Poitiers
Inscription : mai 2008
Messages : 229
Détails du profil
Informations personnelles :
Nom : Homme Sylvain
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Poitiers
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : mai 2008
Messages : 229
Points : -3
Points : -3
Pourquoi tu dis ca ?
sylvain230 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 11h56   #11
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 009
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 009
Points : 45 094
Points : 45 094
c'est de l'emule à Sion
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 11h57   #12
 
Avatar de sylvain230
 
Homme Sylvain
Poitiers
Inscription : mai 2008
Messages : 229
Détails du profil
Informations personnelles :
Nom : Homme Sylvain
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Poitiers
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : mai 2008
Messages : 229
Points : -3
Points : -3
Citation:
Parce que entre l'exemple que j'ai donné et une vraie classe Java, y'a pas énormément de différence.
Ben oui c'est aussi ce que je pense.
sylvain230 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 12h34   #13
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 803
Points : 35 803
Citation:
Envoyé par Loceka
Sinon avouez que c'est surtout une histoire de vocabulaire le fait que "ça n'existe pas en javascript". 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.
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 !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/05/2011, 21h58   #14
Expert Confirmé Sénior
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 572
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 572
Points : 4 074
Points : 4 074
Citation:
Envoyé par SpaceFrog Voir le message
un téléchargement illégal de reggae ?
Citation:
Envoyé par SpaceFrog Voir le message
c'est de l'emule à Sion
>>> Je demande officiellement la légion d'honneur pour SF.
__________________

...pour les linguistes et les curieux >>> générateur de phrases aléatoires

__________________
RomainVALERI est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 14h46   #15
Expert Confirmé
 
Avatar de sekaijin
 
Femme
Urbaniste
Inscription : juillet 2004
Messages : 1 421
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 48
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Urbaniste
Secteur : Santé

Informations forums :
Inscription : juillet 2004
Messages : 1 421
Points : 2 809
Points : 2 809
é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
sekaijin est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h32.


 
 
 
 
Partenaires

Hébergement Web