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 :

obj = new Object(); push(obj);


Sujet :

JavaScript

  1. #1
    Membre confirmé Avatar de Gaulouis
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2015
    Messages
    252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 252
    Points : 476
    Points
    476
    Par défaut obj = new Object(); push(obj);
    Bonjour,

    Je suis débutant en javascript. J'ai écrit un petit code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	var datas = [];
    	var obj_init = {a: null, b: null};
    	var obj;
     
    	obj = new Object(obj_init);
    	obj.a = "---";
    	datas.push(obj);
    	obj = new Object(obj_init);
    	datas.push(obj);
    	obj.a = "+++";
    	console.log(datas);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    [
      0: {a: "+++", b:null},
      1: {a: "+++", b:null}
    ]
    Je voudrais savoir pourquoi la propriété "a" de l'object d'indice 0 dans le tableau vaut "+++" et pas "---" ?

    Que dois-je corriger pour obtenir le comportement attendu ?

    D'avance merci

  2. #2
    Membre confirmé Avatar de Gaulouis
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2015
    Messages
    252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 252
    Points : 476
    Points
    476
    Par défaut Amateur ...
    Ton erreur viens du fait que tu initialise mal ton obj.

    En passant en paramètre un même object a ton new Object; Object éttend cette object en utilisant les prototype a et b. Du coup, l'object retourné par new Object équivaut a une nouvelle instance de Object dont les prototype sont commun a obj_init.

    Une solution est d'initialiser tes object manuellement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	var datas = [];
    	var obj_init = {a: null, b: null};
    	var obj;
     
    	obj = new Object();
    	obj.a = "---";
    	obj.b = null;
    	datas.push(obj);
    	obj = new Object();
    	obj.a = null;
    	obj.b = null;
    	datas.push(obj);
    	obj.a = "+++";
    Ou bien de crée ton propre constructeur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function ObjInit() {
    	this.a = null;
    	this.b = null;
    }
    	var datas = [];
    	var obj;
     
     	obj = new ObjInit();
    	obj.a = "---";
    	datas.push(obj);
    	obj = new ObjInit();
    	datas.push(obj);
    	obj.a = "+++";
    	console.log(datas);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/04/2013, 08h26
  2. Réponses: 0
    Dernier message: 26/04/2010, 16h57
  3. new : Object reference not set to an instance of an object
    Par zulad dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/06/2007, 20h35
  4. Comment repeter "new Object()"
    Par éloi_75 dans le forum Flash
    Réponses: 7
    Dernier message: 19/01/2007, 11h06
  5. For Each obj as Object in MyArray
    Par FremyCompany dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 02/03/2006, 16h37

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