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 :

this non conserv� malgr� new ?


Sujet :

JavaScript

  1. #1
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par d�faut this non conserv� malgr� new ?
    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
    <script type="text/javascript">
    arrfunc=new Array()
     function Rebour(div,start) {
              this.chrono=(this.chrono==undefined)?start:this.chrono+1
              document.getElementById(div).innerHTML = ++this.chrono
          }
     
    function launch(div, start){
    setInterval( function(){ new Rebour(div,start)},1000) 
    }
     
    function init(){
    for(i=1;i<7;i++){
     launch('_'+i,i*3) 
    }
    }
     
    </script>
    </head>
     
    <body onload="init()">
     
    <div id="_1"></div>
    <div id="_2"></div>
    <div id="_3"></div>
    <div id="_4"></div>
    <div id="_5"></div>
    <div id="_6"></div>
    <div id="_7"></div>
    </body>
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  2. #2
    Membre �prouv�
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifi�)
    Inscrit en
    D�cembre 2004
    Messages
    2 059
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activit� : OPNI (Objet Programmant Non Identifi�)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 2 059
    Par d�faut
    Bonjour � Maitre SpaceFrog,

    Je ne comprends peut �tre pas la ou est le probl�me, car (comme je suis tr�s curieux et que j'ai envie d'apprendre) je me suis permis d'essayer pour voir ce que ca faisait, et j'ai bien des petites valeurs qui s'affichent dans des divs.

  3. #3
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Dans ton timer, chaque new Rebour() cr�e une nouvelle instance (anonyme) de Rebour, le this s'applique donc � chacune de ces instances et non au constructeur lui-m�me
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScript � JavaScript et le DOM par la pratique � PHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  4. #4
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    D�cembre 2010
    Messages
    1 009
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activit� : sans emploi

    Informations forums :
    Inscription : D�cembre 2010
    Messages : 1 009
    Par d�faut
    Citation Envoy� par Bovino Voir le message
    Dans ton timer, chaque new Rebour() cr�e une nouvelle instance (anonyme) de Rebour, le this s'applique donc � chacune de ces instances et non au constructeur lui-m�me
    +1 pour le Bovin.

    @LaGrenouille: A mon avis, le r�sultat que tu attends ressemble � �a :

    Code js : 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
     
     
    arrfunc=new Array();
     
    function Rebour()
    {
    	this.start = function(div,start) {
    		this.chrono=(this.chrono==undefined)?start:this.chrono+1
    		document.getElementById(div).innerHTML = ++(this.chrono);
    	}
    }
     
    function launch(div, start){
    	var r = new Rebour();
    	setInterval( function(){ r.start(div,start)},1000) 
    }
     
    function init(){
    	for(i=1;i<7;i++){
    		launch('_'+i,i*3) 
    	}
    }

    edit: et m�me plus proprement (pour que la fonction "start" ne soit pas d�finie 7 fois en m�moire) :

    Code js : 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
    arrfunc=new Array();
     
    function Rebour(){}
     
    Rebour.prototype.start = function(div,start) {
    	this.chrono=(this.chrono==undefined)?start:this.chrono+1
    	document.getElementById(div).innerHTML = ++(this.chrono);
    }
     
    function launch(div, start){
    	var r = new Rebour();
    	setInterval( function(){ r.start(div,start)},1000) 
    }
     
    function init(){
    	for(i=1;i<7;i++){
    		launch('_'+i,i*3) 
    	}
    }


  5. #5
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    D�cembre 2010
    Messages
    1 009
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activit� : sans emploi

    Informations forums :
    Inscription : D�cembre 2010
    Messages : 1 009
    Par d�faut
    A noter aussi que :

    Code js : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    	this.chrono=(this.chrono==undefined)?start:this.chrono+1
    	document.getElementById(div).innerHTML = ++(this.chrono);

    Si chrono est d�fini, tu l'incr�mentes 2 fois. (this.chono+1 & ++this.chrono)

  6. #6
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par d�faut
    Merci les gars...
    Je n'arrivais pas � joindre le compteur unitairement � l'instance de fonction, ce qui et r�alis� dans le code de will sur le this.start ou en prototypant la fonction

    pour ce qui ets du double incr�ment c'est une trace de mes errance sur diff�rents tests, il n'y a pas de double incr�ment en r�alit�
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

Discussions similaires

  1. R�ponses: 1
    Dernier message: 14/10/2007, 21h00
  2. R�ponses: 4
    Dernier message: 16/07/2007, 10h03
  3. [ASP.NET 2.0 / C#]Cookie non conserv�.
    Par maniaco_jazz dans le forum ASP.NET
    R�ponses: 4
    Dernier message: 05/07/2007, 14h55
  4. [ADO.NET] Connexion non ferm�e malgr� un close() ?
    Par TheoOrl45 dans le forum Acc�s aux donn�es
    R�ponses: 6
    Dernier message: 13/02/2007, 16h21
  5. Probl�me de Tableau (non conserv� sous ie)
    Par dj-julio dans le forum Langage
    R�ponses: 12
    Dernier message: 23/12/2005, 12h19

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