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 :

petit soucis de portée de variable


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut petit soucis de portée de variable
    Bonjour

    J'ai un soucis quand à des variables qui sont 'undefined'.
    Je m'explique:
    J'ai un fichier js:
    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
    var ennemi=new Object();
         ennemi.liste_ennemi=new Array();
    
    [...]
    
    ennemi.ennemi_entre=function(point1_x,point1_y,point2_x,point2_y,diametre_balle)
    {
    	[...]
    		
    		for(var i=0; i < (nbre_boucle+1); i++)
    			{
    				[...]
    				
    				for(var indice=0; indice<ennemi.liste_ennemi.length;indice++)
    				{
    				[...]
    				}
    				
    			}
    
    }
    Il me dis qu'il ne connait pas la variable (tableau) en rouge.

    Je précise que cette fonction est appelé d'une autre page js mais que je me sers de ce tableau dans d'autres fonctions présentent dans la 1ere page et que cela marche trés bien.

    Si quelqu'un voit l'erreur ou as déjà eu un problème similaire...

  2. #2
    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 : 54
    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
    Tout d'abord, il est recommandé de déclarer les objets et tableaux de façon littérale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var ennemi={};
         ennemi.liste_ennemi=[];
    Sinon, ton tableau est-il réellement un tableau ? Sachant qu'en JavaScript, les tableaux associatifs n'existent pas, si liste_ennemi ne contient pas que des valeurs indicées, il deviendra un objet et perdra de fait sa propriété length.
    Dans ce cas, tu peux passer par une boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(elem in ennemi.liste_ennemi)
    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 JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    merci de répondre.
    Tout d'abord, il est recommandé de déclarer les objets et tableaux de façon littérale :
    Ah bon! ok, je ferai...

    Sinon, ton tableau est-il réellement un tableau ?
    Oui, c'est vraiment un tableau (un tableau d'objet).
    Le problème ne vient pas de length mais de ennemi.
    En effet, si j'enlève ennemi.tableau, j'ai un appel d'une fonction ennemi.mafonction() dans la boucle d'aprés et pareil il me dit qu'il ne connait pas.
    Donc , en faite on dirait que la fonction entière n'as pas accés à la page où elle est...

    A moins qu'il y ait une erreur bête.

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Comme tu es dans l'objet même, tu ne devrais pas écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    indice<this.liste_ennemi.length;
    ?

  5. #5
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    Honte à moi , j'aurais pu m'en douter, mais c'est quand même bizarre, je fais pareil ailleurs dans ma page et j'ai pas de bug. A moins que coder toute la nuit me rende fou .

    En tout cas merci, cela marche.
    this.liste_ennemi.length

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

Discussions similaires

  1. Petit souci de définition de variable
    Par ArnaudMO dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/05/2011, 15h20
  2. Petit souci de label avec variables intégrées
    Par Attila54 dans le forum VB.NET
    Réponses: 7
    Dernier message: 06/04/2011, 14h21
  3. Petit soucis de portée de variable
    Par AthenA714 dans le forum VB.NET
    Réponses: 3
    Dernier message: 20/04/2007, 10h33
  4. [Système] Petit souci de passage de variables
    Par geoffrey38 dans le forum Langage
    Réponses: 2
    Dernier message: 20/12/2006, 17h26
  5. petit souci avec des variables avec des fonctions psql
    Par dust62 dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 02/04/2005, 13h45

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