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 chevronn� 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 : 30
    Localisation : France, Paris (�le de France)

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

    Informations forums :
    Inscription : Octobre 2015
    Messages : 252
    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 chevronn� 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 : 30
    Localisation : France, Paris (�le de France)

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

    Informations forums :
    Inscription : Octobre 2015
    Messages : 252
    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