2010-03-10 5 views
2

Je voulais montrer le problème avecJavascript variable globale question

J'ai 2 pages. La deuxième page envoie les images sélectionnées à la fenêtre d'ouverture (la première) en utilisant la fonction fResimleriEkle.

Je définis chaque élément de tableau sur une autre variable de tableau (ArrResimler et ArrMetinler).

Mais lorsque je lance la fonction fAlbumOlustur en cliquant sur le bouton, je ne peux pas voir les valeurs des variables globales.

Y at-il un problème avec les variables globales?

Le problème est dans l'image: alt text

Merci pour votre aide ....

+0

Il est difficile de comprendre quel est le problème ici (et j'ai vu cela la dernière fois que vous avez demandé aussi). Comment sont les deux pages liées? – Pointy

+0

Ne pensez pas deux pages. Une fonction consiste à définir deux variables globales (ArrayResimler = ArrayPictures, ArrayMetinler = ArrayText). Mais je ne peux pas accéder aux valeurs de ces variables dans la seconde fonction. Le problème est celui-ci. – uzay95

+0

Pensez deux pages, parce que les variables globales sont globales dans la portée de la fenêtre .. donc chaque page a des globales différentes .. –

Répondre

0

ligne est incorrect:

arrResims = ArrResimler = sResimler 

Je ne peux pas définir les valeurs à nouveau, après la ligne ci-dessus.

0

Peut-être que je manque quelque chose, mais tu ne peux pas définir un « regarder » à la variables globales qui vous intéressent?

1

Global variables are bad! Une autre sur la façon they are bad ...

Vous pouvez toujours passer le tableau dans un paramètre "tampon" dans vos fonctions qui est plus propre IMO.

Exemple:

<script type="text/javascript"> 
    function WorkWithArray(myArray, someOtherParam) 
    { 
     if (myArray.constructor.toString().indexOf("Array") == -1) 
      return false; 

     //Work with myArray here 
     myArray[myArray.length] = 'blah'; 
     return true; 
    } 
</script> 

En JavaScript, nous avons des fonctions et nous avons des arguments que nous adoptons dans ces fonctions. Mais comment JavaScript gère ce que vous transmettez n'est pas toujours clair. Lorsque vous commencez à vous lancer dans le développement orienté objet, vous pouvez être perplexe quant à la raison pour laquelle vous avez parfois accès aux valeurs, mais pas à d'autres.

Lors de la transmission d'une variable de type primitive telle qu'une chaîne ou un nombre, la valeur est transmise par valeur. Cela signifie que toute modification de cette variable dans la fonction est complètement séparée de tout ce qui se passe en dehors de la fonction.

Passer un objet (un tableau est un objet), cependant, le transmet par référence. Dans ce cas, toute propriété de cet objet est accessible dans la fonction.

Voir JavaScript: Passing by Value or by Reference pour plus d'informations.

+0

Pouvez-vous expliquer avec un exemple shor? – uzay95

+0

Il ne demandait pas s'ils étaient mauvais - votre message ne serait-il pas un commentaire plus approprié vu que vous n'essayez pas réellement de répondre à la question? – Erik

+0

Lire sa question. Citant: "Y at-il un problème concernant les variables globales?". Quoi qu'il en soit, ajouté plus d'informations sur ma solution proposée et un exemple aussi! – AlexV