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 :

Structures des objets.


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Avatar de Zenol
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2004
    Messages
    812
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 812
    Par d�faut Structures des objets.
    Bonjour, je voudrais savoir si il existe une fonction javaqscript qui permet d'aficher la structure d'un objet(membre, fonction, ect)
    Mes articles D�veloppez | Dernier article : Raytracer en haskell
    Network library : SedNL | Zenol's Blog : http://zenol.fr

    N'oubliez pas de consulter la FAQ et les cours et tutoriels.

  2. #2
    Membre Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Par d�faut
    Un truc vite fait :o Bien gras comme il faut pas !

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Untitled Document</title>
    </head>
    <body>
     
    <div id="yo">
     
    </div>
     
    <div id="function" style="color:#CC6600">
     
    </div>
    <br />
    <br />
    <div id="property" style="color:#990000">
     
    </div>
    </body>
    <script type="text/javascript" language="javascript">
    	function yep ( )
    	{
    		for( var prop in document.getElementById("yo") )
    		{
    			try
    			{
    			document.getElementById("yo")[prop] = "r";
    			document.getElementById("function").innerHTML += prop+"<br/>";
    			}
    			catch(Ex)
    			{
    			//alert(Ex);
    			document.getElementById("property").innerHTML += prop+"<br/>";
    			}
    		}
    	}
    	yep();
    </script>
    </html>
    Apr�s je pense que la reflection, ou introspection, n'existe pas en tant que tel en javascript, du moins pas comme dans un langage comme le c#.

    Bye

  3. #3
    Membre �clair�
    Avatar de Zenol
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2004
    Messages
    812
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 812
    Par d�faut
    Je voi que tu a lut dans mes pensser concernant l'exploration d'un objet dom
    Sinon en fait je visait particuli�rement le var_dump du php
    Et enfin, je pourais avoir plus d'information sur l'exeption Ex?

    Je sens que le d�velopement d'un petit JVS comme selui si pourais �tre int�r�ssent pour �tudier des objets. A la dif�rence que plutot qu'un div, on utiliseras une variable String avec un contenu identer(Non non laisser moi coder sa sa m'occupera )

    Ps: Les couleures que tu a choisi sont moches
    Mes articles D�veloppez | Dernier article : Raytracer en haskell
    Network library : SedNL | Zenol's Blog : http://zenol.fr

    N'oubliez pas de consulter la FAQ et les cours et tutoriels.

  4. #4
    Expert confirm�
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    D�tails du profil
    Informations personnelles :
    �ge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par d�faut
    si tu utilises ffx, tu as un inspecteur dom qui est tres utile

    sinon effectivement la seule solution c'est le for

  5. #5
    Membre Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Par d�faut
    Et enfin, je pourais avoir plus d'information sur l'exeption Ex?
    C'est le mecanisme tr�s classique du try catch avec une exception non typ�.

    En C# ou en php tu arait typ� ton exception
    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
     
     
    try{
     
    }
    ....
    // Php
    catch(Exception $Ex){
     
    }
    // C#, de souvenir .. le Ns ne doit pas etre bon mais la syntaxe ne dois pas etre trop moche !
    catch(System.IOException Ex)
    {
     
    }
    En JS le typage n'existe pas r�ellement (� part les types primitifs int string ect), donc tu donnes juste une variable qui contient le message d'erreur. La variable aurait pu s'appeler X, Y, ou Ex.
    Comme dans les langages cit�s plus haut les blocs peuvent �tre imbriqu�s les un dans les autres.


    Je sens que le d�velopement d'un petit JVS comme selui si pourais �tre int�r�ssent pour �tudier des objets. A la dif�rence que plutot qu'un div, on utiliseras une variable String avec un contenu identer(Non non laisser moi coder sa sa m'occupera )
    Je te le laisses avec plaisir ! Car m�me si c'est sympa le JS, je trouve qu'il manque r�ellement de structuration et ca devient vite le bordel.


    Ps: Les couleures que tu a choisi sont moches
    Oui, je ne suis qu'un petit developpeur avec absolument aucune comp�tence graphique

    si tu utilises ffx, tu as un inspecteur dom qui est tres utile
    Et en plus une magnifique console de debugage JS et CSS.
    Firefox i love you :o

    Bye

  6. #6
    Membre �clair�
    Avatar de Zenol
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2004
    Messages
    812
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 812
    Par d�faut
    Ok merci bien ^^
    Nb : J'ai jamais esseiller le C#, je suis rester au c++
    Nb : Firefox must live, and IE must die!
    (Waou c'est ma premi�re rime anglaise XD)

    Edit : Bon j'ai scripter ceci :
    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
    19
    20
    21
    22
    function explode (Obj)
    {
      var ContentVar;
      var ContentFunc;
      for( var Member in Obj )
      {
        try
        {
          //On tente de modifier le contenu, en suposant que c'est une variable
          Obj[Member] += "";
          //Aucune ereur, donc on l'ajoute a la liste de membre.
          ContentVar += Member +"{<br/>";
          ContentVar += explode (Member) + "}<br/>";
        }
        catch(Ex)
        {
          //C'est une fonction
          ContentFunc += Member +"(?)<br/>";
         }
       }
       return "<font color=\"#00FF00\">" + ContentVar + "</font>" + "<font color=\"#0000FF\">" + ContentFunc + "</font>";
    }
    Alors plusieures choses :
    -Coment sp�cifier que OBJ doit �tre une copie?
    -Pourquoi ma fonction r�cursive ne s'ar�tte jamais O_O
    Normalement elle devrais s'ar�ter quand on a plus de fonction/proprit�t�es dans un membre.
    Mes articles D�veloppez | Dernier article : Raytracer en haskell
    Network library : SedNL | Zenol's Blog : http://zenol.fr

    N'oubliez pas de consulter la FAQ et les cours et tutoriels.

  7. #7
    Expert confirm�
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Ao�t 2003
    Messages
    3 684
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : danseur

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 3 684
    Par d�faut
    tu peux donner un exemple de valeur pour Obj?
    parce que c'est assez flippant vu comme �a

  8. #8
    Expert confirm�
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    D�tails du profil
    Informations personnelles :
    �ge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par d�faut
    mw� c est strange ce truc, un ti conseil, utilise typeof qui peut peut etre t'aider a trouver le type d'un membre

  9. #9
    Expert confirm�
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Ao�t 2003
    Messages
    3 684
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : danseur

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 3 684
    Par d�faut
    et pour le membre d'un type, eh bien... euh, c'est pas du javascript;

  10. #10
    Expert confirm�
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    D�tails du profil
    Informations personnelles :
    �ge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par d�faut

  11. #11
    Membre �clair�
    Avatar de Zenol
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2004
    Messages
    812
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 812
    Par d�faut
    Un exemple pour la value de obj : document ^^
    En fait, j'ai l'impression que quand il arive sur un Undefined, il continu de boucler. En plus je me demende si utiliser les exeption pour faire sa c'est vraiment int�r�ssent.

    C'est quoi typeof? Sa permet de savoir si le param�tre est un objet/ une fonction / une variable / undefined?
    Mes articles D�veloppez | Dernier article : Raytracer en haskell
    Network library : SedNL | Zenol's Blog : http://zenol.fr

    N'oubliez pas de consulter la FAQ et les cours et tutoriels.

  12. #12
    Expert confirm�
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Ao�t 2003
    Messages
    3 684
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : danseur

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 3 684
    Par d�faut
    en fait, je me demande ce que tu cherches vraiment (comme v�rit�);

    d�j�, Ffx et IE, pour ne citer qu'eux, ne consid�rent pas les objets dom de la m�me mani�re et le bouclage des propri�t�s donne des r�sultats peu fiables;

    apr�s, veux-tu avoir la descendance d'un noeud? son nodeType/name? sa taille?

  13. #13
    Membre �clair�
    Avatar de Zenol
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2004
    Messages
    812
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 812
    Par d�faut
    Je veut explorer un objet. Que ce soit un objet, dom, ou autre chose.
    Mes articles D�veloppez | Dernier article : Raytracer en haskell
    Network library : SedNL | Zenol's Blog : http://zenol.fr

    N'oubliez pas de consulter la FAQ et les cours et tutoriels.

  14. #14
    Expert confirm�
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Ao�t 2003
    Messages
    3 684
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : danseur

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 3 684
    Par d�faut
    hum; vague-vague

    for in te donnera les propri�t�s d'un objet ou les indices d�clar�s d'un tableau;
    typeof te donnera le type approximatif de l'objet;

    apr�s, isPrototypeOf, constructor, instanceof... peuvent avoir une certaine utilit� mais finalement pas tant que �a;

  15. #15
    Membre �clair�
    Avatar de Zenol
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2004
    Messages
    812
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 812
    Par d�faut
    for in me donne aussi les fonctions.
    Sinon, je voudrais savoir comment je peut dire a ma boucle de ne plus aller chercher dans les undefined.undefined.undefined.undefined.........
    Mes articles D�veloppez | Dernier article : Raytracer en haskell
    Network library : SedNL | Zenol's Blog : http://zenol.fr

    N'oubliez pas de consulter la FAQ et les cours et tutoriels.

  16. #16
    Expert confirm�
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Ao�t 2003
    Messages
    3 684
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : danseur

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 3 684
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    for in me donne aussi les fonctions.
    si ton objet est window, certes... ou encore si tu fais r�f�rence � une m�thode d'objet... tout cela sous Ffx;

  17. #17
    Membre Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Par d�faut
    Apres les noms de m�thodes post�es par siddh et javatwister voila ce que cela donne.

    Et c'est deja nettement plus propre

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Untitled Document</title>
    </head>
     
    <body>
     
     
    <div id="test">
    &nbsp;
    </div>
     
    Fonctions : 
    <br />
    <div id="methodes">
     
    </div>
    <br />
    <br />
    Méthodes :
    <br />
    <div id="propriete">
     
    </div>
     
     
    <script language="javascript" type="text/javascript">
    function test( Obj )
    {
    	for( var t in Obj )
    	{
    		if( typeof(Obj[t]) == "function" )
    		{
    			document.getElementById("methodes").innerHTML += typeof(Obj[t])+" :: "+t+"<br/>";
    		}
    		else
    		{
    			document.getElementById("propriete").innerHTML += typeof(Obj[t])+" :: "+t+"<br/>";
    			if( typeof(Obj[t]) == "object" )
    			{
    				//test ( Obj[t] ); Est une très mauvaise idée car le script s'emballe... Surement un problème de récursivite du à l'arboresence, cf parentNode nextSibling ect
    			}
    		}
    	}
    }
    test( document.getElementById("test") );
    </script>
    </body>
    </html>
    Bon apr�s il faudrait affiner la chose pour une presentation plus correctes avec peut plus d'informations ect...

    Sur IE je ne peux pas le tester, il bug � mort.... IE, pas le script.
    Mais de toutes facon javatwister semble dire que cela ne fonctionnerais pas sous IE :o

    bye

  18. #18
    Expert confirm� Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par d�faut
    Citation Envoy� par siddh
    si tu utilises ffx, tu as un inspecteur dom qui est tres utile
    Sous IE aussi
    Internet Explorer Developer Toolbar

  19. #19
    Membre �clair�
    Avatar de Zenol
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2004
    Messages
    812
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 812
    Par d�faut
    Y a t'il moyen de savoir si la variable est une r�f�rence ou l'objet r��le? (pour eviter le probl�me de r�cursivit�e infini)
    Mes articles D�veloppez | Dernier article : Raytracer en haskell
    Network library : SedNL | Zenol's Blog : http://zenol.fr

    N'oubliez pas de consulter la FAQ et les cours et tutoriels.

Discussions similaires

  1. [Conception] Structures partag�es par des objets
    Par jblecanard dans le forum C++
    R�ponses: 14
    Dernier message: 14/03/2013, 11h00
  2. des objets dans des structures
    Par dhbmedanis dans le forum D�buter
    R�ponses: 9
    Dernier message: 25/05/2012, 16h56
  3. By val et By ref appliqu�es � des objets de types structur�s
    Par new_wave dans le forum Framework .NET
    R�ponses: 3
    Dernier message: 02/06/2009, 10h40
  4. R�ponses: 7
    Dernier message: 13/03/2008, 14h59
  5. Importer des objets de 3dsMax
    Par Anonymous dans le forum OpenGL
    R�ponses: 3
    Dernier message: 06/05/2002, 13h53

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