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 :

Raison de cette curiosité?


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2014
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Arménie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2014
    Messages : 388
    Points : 580
    Points
    580
    Par défaut Raison de cette curiosité?
    Bonjour,

    Dans le code ci-dessous, j'ai voulu simplifier le constructeur d'objets en remplaçant les deux lignes par ce qui est mis en commentaire. Avec Firefox, la petite fenêtre affiche alors 5 à la place de 0. Je trouve cela très étonnant!

    Code html : 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
    <!doctype html>
    <meta charset="utf-8">
    <head>
    <script>
     
    C_obj=function() {
            this.x={val:[]};
            this.y={val:[]};
    //      this.x=this.y={val:[]};
    };
     
    obj=new C_obj();
     
    obj.x.val[0]=obj.y.val[0]=0;
    obj.x.val[0]=5;
    alert(obj.y.val[0]);
     
    </script>
    </head>
    <body>
    </body>
    </html>

  2. #2
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2014
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Arménie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2014
    Messages : 388
    Points : 580
    Points
    580
    Par défaut
    Rebonjour,

    Ci-dessous, une autre manière de présenter cette curiosité, peut-être?

    Code html : 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
    <!doctype html>
    <meta charset="utf-8">
    <head>
    <script>
     
    C_obj1=function() { this.x=this.y=[]; };
    obj1=new C_obj1();
    obj1.x[0]=obj1.y[0]=0;
    obj1.x[0]=5;
    alert(obj1.y[0]); // Affiche 5
     
    C_obj2=function() { this.x=this.y=null; };
    obj2=new C_obj2();
    obj2.x=obj2.y=0;
    obj2.x=5;
    alert(obj2.y); // Affiche 0
     
    </script>
    </head>
    <body>
    </body>
    </html>

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 060
    Points : 44 585
    Points
    44 585
    Par défaut
    Bonjour,
    lorsque tu écris this.x = this.y = [];, les deux propriétés de this « pointent » sur le même tableau.

Discussions similaires

  1. C'est quoi cette curiosité ?
    Par yann18 dans le forum jQuery
    Réponses: 4
    Dernier message: 30/06/2011, 00h07
  2. qu'est ce qui va pas dans cette fonction???
    Par access001 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 18/04/2006, 13h10
  3. Réponses: 12
    Dernier message: 08/03/2006, 17h27
  4. Encore cette fichu erreur (0x80004005)
    Par AF_STjohn dans le forum ASP
    Réponses: 2
    Dernier message: 18/05/2004, 11h14
  5. Réponses: 3
    Dernier message: 06/05/2002, 18h24

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