IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

r�cup�rer le nom d'une classe javascript


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Homme Profil pro
    m�dical
    Inscrit en
    Septembre 2007
    Messages
    144
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : m�dical

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Par d�faut r�cup�rer le nom d'une classe javascript
    bonjour,

    le contexte : je cr�e des classes (new xxxx()) que je stock dans un array,
    chaque classe stock�e doit �tre unique, pour cela, j'aurais besoin de connaitre le nom de chaque classe pour la stocker en tant que cl�.

    le but est de pouvoir r�cup�rer une classe stock�e par la suite avec une fonction du genre recupclasse(maclasse());

    mais je ne sais pas du tout comment faire �a en javascript....

    merci pour votre aide, j'ai essay� de chercher sur le net, mais le probl�me c'est que les r�sultats parlent des class de balise... rien � voir...

    accessoirement j'ai une variable publique (name) dans mes classes que t'utilise, mais bon, je ne trouve pas �a super...

  2. #2
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    Citation Envoy� par dark poulpo Voir le message
    bonjour,

    le contexte : je cr�e des classes (new xxxx()) que je stock dans un array,
    chaque classe stock�e doit �tre unique, pour cela, j'aurais besoin de connaitre le nom de chaque classe pour la stocker en tant que cl�.

    le but est de pouvoir r�cup�rer une classe stock�e par la suite avec une fonction du genre recupclasse(maclasse());

    mais je ne sais pas du tout comment faire �a en javascript....

    merci pour votre aide, j'ai essay� de chercher sur le net, mais le probl�me c'est que les r�sultats parlent des class de balise... rien � voir...

    accessoirement j'ai une variable publique (name) dans mes classes que t'utilise, mais bon, je ne trouve pas �a super...
    il n'y a pas de classe en javascript
    et
    Citation Envoy� par dark poulpo Voir le message
    bonjour,

    le contexte : je cr�e des classes (new xxxx()) ...
    ceci cr�e un objet pas une classe. quant � xxxx c'est une fonction pas une classe

    si la question est de savoir quelles sont les fonctions d�finies le sujet a d�j� �t� abord� il y a peu.

    A+jyt

  3. #3
    Membre exp�riment�

    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    183
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 183
    Par d�faut
    M�me s'il n'y a pas de classes, � partir du moment o� tu as cr�� un "sch�ma" � partir du quel tu fait des instances, on ne peut qu'appeler cela une classe.

    M�me si on appelle cela un "prototype".

    Et malheureusement derri�re on parle de classe une fois que tu l'as cr��, et ce dans tous les frameworks c'est bien une classe que tu �cris, et �videment des instances que tu fais de cette classe.

    Ca peut para�tre stupide de raisonner avec des Classes dans un langage qui n'en est pas pourvu, mais le besoin s'en fait ressentir, notamment quand tu as besoin de faire faire une tache sp�cifique � une classe, dans un contexte pr�cis, dans ce cas cas, tu fais une nouvelle classe qui h�rite de celle-ci.

    J'ai une question, qui peut justement para�tre conne, mais si JS n'a pas de classe, comme on le sait tous, comme on va appeler cela :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    var Animal = function(options) {
        this.init(options);
    };
    Animal.prototype = {
       constructor : Animal.constructor,
       init : function(options) {
     
       },
     
        bruit : function() {
           alert(bruit)
        }
     
    }

  4. #4
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    Citation Envoy� par arnogues Voir le message
    M�me s'il n'y a pas de classes, � partir du moment o� tu as cr�� un "sch�ma" � partir du quel tu fait des instances, on ne peut qu'appeler cela une classe.
    non justement �a ne s'appelle pas une classe
    ce n'est pas parce qu'� l'�cole on vous apprend la POO en se basant sur la POO � base de classe que programmer en objet n�cessite des classes.

    la th�orie des langages � objet est bien plus large que cela.
    Citation Envoy� par arnogues Voir le message
    M�me si on appelle cela un "prototype".
    Et malheureusement derri�re on parle de classe une fois que tu l'as cr��, et ce dans tous les frameworks c'est bien une classe que tu �cris, et �videment des instances que tu fais de cette classe.
    l� encore non et re non.

    non tu ne fais pas de classe en d�finissant un prototype et non tu ne cr�e pas n�cessairement d'instance pour faire un objet.

    la grande majorit� des langage � base de classes ne connaissent pas la notion d'objet mais uniquement d'instance. Mais ce n'est pas le cas de tous les langage et javascript fait partis de ceux qui ne connaissent pas la notion de classe et connaissent la notion d'objet. en js on peut cr�er un objet sans d�finition prototype.
    Citation Envoy� par arnogues Voir le message
    Ca peut para�tre stupide de raisonner avec des Classes dans un langage qui n'en est pas pourvu, mais le besoin s'en fait ressentir, notamment quand tu as besoin de faire faire une tache sp�cifique � une classe, dans un contexte pr�cis, dans ce cas cas, tu fais une nouvelle classe qui h�rite de celle-ci.
    l� encore ce n'est pas n�cessaire et oui c'est stupide. js connait la notion d'h�ritage bien plus riche que l'h�ritage de classe. c'est comme dire je connais le v�lo alors pour organiser le fret en Europe on n'utilisera que le v�lo. mieux vaut apprendre les capacit� de js et le utiliser � bon escient que de le d�tourner pour essayer de reproduire d'autre langage.
    Citation Envoy� par arnogues Voir le message
    J'ai une question, qui peut justement para�tre conne, mais si JS n'a pas de classe, comme on le sait tous, comme on va appeler cela :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    var Animal = function(options) {
        this.init(options);
    };
    Animal.prototype = {
       constructor : Animal.constructor,
       init : function(options) {
     
       },
     
        bruit : function() {
           alert(bruit)
        }
     
    }
    �a s'appelle simplement un prototype tout simplement.

    A+JYT

  5. #5
    Membre confirm�
    Homme Profil pro
    m�dical
    Inscrit en
    Septembre 2007
    Messages
    144
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : m�dical

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Par d�faut
    merci pour ta r�ponse, malheureusement, apr�s avoir lu le topic indiqu�, �a ne r�sout pas mon probl�me... je'ai besoin de connaitre le nom de la "fonction" (pas class) fournis en param�tre d'une fonction X

  6. #6
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    Citation Envoy� par dark poulpo Voir le message
    merci pour ta r�ponse, malheureusement, apr�s avoir lu le topic indiqu�, �a ne r�sout pas mon probl�me... je'ai besoin de connaitre le nom de la "fonction" (pas class) fournis en param�tre d'une fonction X
    comme je l'ai dit le sujet � d�j� �t� trait� dans le forum

    une petite recherche sur comment lister les fonctions d�finies et tu auras ta r�ponse.

    A+JYT

  7. #7
    Expert confirm�
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par d�faut
    Citation Envoy� par dark poulpo Voir le message
    je cr�e des classes (new xxxx()) que je stock dans un array,
    chaque classe stock�e doit �tre unique, pour cela, j'aurais besoin de connaitre le nom de chaque classe pour la stocker en tant que cl�.

    le but est de pouvoir r�cup�rer une classe stock�e par la suite avec une fonction du genre recupclasse(maclasse());
    Sans vouloir intervenir dans le d�bat � classe / pas classe � (), j'ai juste envie de dire : l'id�e de d�part ne me para�t pas bonne. Dark Poulpo, je reprends tes propres termes, tu cherches � stocker des constructeurs (on va appeler �a comme �a), de mani�re unique, en les identifiants � l'aide de cl�s. Pourquoi ne pas utiliser un objet associatif ?

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var mesConstructeurs = {
       "C1": function C1( ... ){
          ...
       },
       "C2": function C2( ... ){
          ...
       },
       etc.
    };
    � l�utilisation, tu peux construire tes objets comme ceci :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    var monObjet1 = new mesConstructeurs.C1(...);
    // ou bien
    var monObjet1 = new mesConstructeurs["C1"](...);
    Et si tu en as vraiment besoin, tu peux r�cup�rer dynamiquement le constructeur comme l'a indiqu� Arnogues :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    function recupclasse( obj ) { return obj.constructor; }
    Ou bien le nom du constructeur :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    function recupclasse( obj ) { return obj.constructor.name; }
    La FAQ JavaScript � Les cours JavaScript
    Touche F12 = la console → l�outil indispensable pour d�velopper en JavaScript !

  8. #8
    Membre confirm�
    Homme Profil pro
    m�dical
    Inscrit en
    Septembre 2007
    Messages
    144
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : m�dical

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Par d�faut
    en r�ponse � watilin :

    en fait je suis en train de traduire un code � moi que j'avais fais en c#.net sur le principe design entity - system pour un moteur 3d (� la base xna) que je veux faire en webgl pour plus de portabilit�.

    (actuellement j'ai stock� une variable nom avec le nom du PROTOTYPE) pour l'utiliser comme cl�

    j'ai cru voir quelque part un moyen de faire de l'h�ritage de prototype (comme un h�ritage de classe pour ma traduction de mon code) donc je n'aurais qu'a �craser ma variable publique par le nom du prototype h�rit�...

    le probl�me avec l'exemple que tu me donnes c'est que dans un exemple comme celui-ci

    prototype A -> constructor.name retourne "function", moi j'ai besoin d'avoir le mot A

    (j'ai essay� aussi avec constructor et �a me retourne "Function() { [native code] }")

    prototype B qui h�rite de A -> besoin d'avoir le mot B

    ps : (je viens de lire un exemple sur le net, je vais r�essayer avec ce que tu m'as dit pour constructor.name)

    et donc je vais stocker dans un m�me Array des object new A(), new B(), .... (qui sont unique, pas 2 fois A, ou B, ... dans l'array)

    mais pour retrouver l'objet A, B, je comptais donner en argument A, B, ...
    actuellement avec mon syst�me (temporaire ou d�finitif si pas mieux), j'utilise donc cette variable nom ="A/B/C/..." stock� en publique dans chaque prototype

    je n'ai pas besoin d'expliquer pourquoi je dois faire des prototypes h�rit�s car je pense que tout le monde connait l'utilit� des classes h�rit�s dans d'autres langages...

    maintenant si vous connaissez des moyens propres pour javascript d'obtenir les m�me r�sultats....

  9. #9
    Membre confirm�
    Homme Profil pro
    m�dical
    Inscrit en
    Septembre 2007
    Messages
    144
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : m�dical

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Par d�faut
    c'est bon �a marche comme �a, merci � vous

  10. #10
    Expert confirm�
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par d�faut
    Tu as adopt� quelle solution du coup ?
    La FAQ JavaScript � Les cours JavaScript
    Touche F12 = la console → l�outil indispensable pour d�velopper en JavaScript !

  11. #11
    Membre confirm�
    Homme Profil pro
    m�dical
    Inscrit en
    Septembre 2007
    Messages
    144
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : m�dical

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Par d�faut
    bein en fait �a ne marche que � moiti�...

    j'explique la logique de mon code (ne change pas car elle est propre � la logique de conception du moteur)

    pour faire simple dans la compr�hension

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    // p_systems[parametre.constructor.name] = parametre; ( == p_systems["SystemBase"] = parametre; )
    engine.RegisterSystem(new SystemBase());
     
    // p_systems[parametre.constructor.name] = parametre; ( == p_systems["SystemUpdate"] = parametre; )
    engine.RegisterSystem(new SystemUpdate()); 
     
     
    // c'est ici que ça bloque
    var s = engine.GetSystem(SystemUpdate); 
    // return p_systems[parametre.constructor.name];
    /*
     sauf que parametre.constructor.name == "Function", moi j'aurais voulu "SystemUpdate"
    mais je ne veux pas mettre un string en paramètre ça fait moche
    et pour la personne qui dev c'est moyen vu que des éditeurs peuvent
    te proposer la liste des prototype, fonction... qui est plus pratique 
     
    */

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�cup�rer le nom d'une classe et d'une m�thode
    Par hanubis37 dans le forum Langages
    R�ponses: 2
    Dernier message: 21/11/2014, 11h50
  2. R�ponses: 22
    Dernier message: 19/01/2011, 10h00
  3. R�cup�rer le nom d'une Sous-classe
    Par rambc dans le forum G�n�ral Python
    R�ponses: 9
    Dernier message: 05/06/2009, 14h33
  4. r�cup�rer le nom d'une image dans un javascript
    Par adoptioninternationa dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 26/06/2008, 15h36
  5. [javascript]R�cup�rer le nom d'une image
    Par LE NEINDRE dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 18/10/2005, 13h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo