Comment puis-je faire cela?
Mon code est quelque chose comme ceci: p> La première alerte renvoie toujours "l'ancien nombre était:" et non 10. 'T IT Renvoie 10 sur les deux alertes sur la deuxième fonction de fonction? P> P>
7 Réponses :
Supprimer le Vous avez juste besoin p> var code> devant
numéro code> dans votre fonction. Vous créez une variable locale par
En utilisant var code> lors de la définition numéro = '10', vous déclarez
numéro code> en tant que variable locale à chaque fois. Essayez ceci:
Comment accédez-vous alors ce site variaable sur la fonction PlaySong et obtenez la valeur 10?
@johnsnails La variable est déclarée en dehors de la fonction, alors lors de l'attribution numéro = 10, la variable globale est renvoyée, mais si nous utilisons Var Number = '10' dans la fonction latérale, nous aurons une portée locale, nous n'aurons pas la valeur 10 à l'extérieur. la fonction.
Le problème est que vous déclarez une nouvelle variable nommée Vous devez supprimer le mot-clé numéro code> à l'intérieur de la fonction. Cette nouvelle variable masque la variable global
numéro code>, de sorte que la ligne
numéro = 10 code> n'attribue uniquement à cette nouvelle variable locale. P>
var code> de
var numéro = 10 code>. p>
Comme dans C, vous devez définir votre variable en dehors de la fonction / méthode pour la rendre globale.
var number = 0; function playSong(artist,title,song,id) { alert('old number was: '+[number]+''); number = '10'; alert(''+[number]+''); }
Il est rassurant de voir la même réponse affichée dans la même minute.
En réalité, toute définition sans «var» sera une variable globale, quel que soit l'endroit où il est défini. JavaScript peut être effrayant.
Vous pouvez également y accéder à n'importe quelle fonction, comme window.number code>, après avoir supprimé
var code> à l'intérieur de la fonction. p>
C'est probablement vrai, mais peut-être dire quelque chose sur le contexte (par exemple, fonctionnerait-il dans Node.js?).
Permettez-moi d'expliquer en détail. Pour déclarer des variables globales et des variables locales dans JavaScript lorsque votre programme est comme celui-ci p> selon le compilateur JavaScript, toutes les déclarations / Les initialisations des variables vont se déplacer vers le haut. Ce concept s'appelle hisser . P> Selon le compilateur, Le programme exécutera comme suit: P> Si vous devez accéder à la variable globale à l'intérieur de la fonction, utilisez fenêtre.Number em>. p> < Pré> xxx pré> p>
J'ai rencontré cette réponse en 2020 et après avoir cherché un peu plus en ligne, j'ai trouvé que apparemment dans les définitions JavaScript si vous placez des variables en dehors des fonctions ou même créer un fichier appelé globals.js em> et il suffit de mettre toutes vos variables obligatoires globalement dans ce fichier, faites ce fichier le premier fichier utilisateur .js dans vos balises de script après JQuery et tout autre plug-in que vous avez besoin, les globaux se chargeront avant vos autres scripts et vous permettent d'appeler des variables de Globals.js em> dans n'importe quel script de la page. P>
J'ai testé cette théorie dans un PHP application que je suis en construction et j'ai été Capable d'appeler des variables du fichier globals.js em> dans une page chargée via AJAX à une boîte de dialogue jConfirm em> pour un assistant de dépannage pour configurer les valeurs de retour pour le moment où la boîte de dialogue est fermée. P>
Putain ya'll! Merci pour toutes les réponses si rapides.
Pourquoi écrivez-vous d'alerte («ancien numéro était: '+ [numéro] +' '); et non alerte («ancien numéro était: '+ numéro); Parce qu'il alerte un tableau avec un élément à l'intérieur, pas l'élément (numéro)
Hmmm Dunno mais ça marche. Je ne pense pas que cela chercherait un tableau parce que je conjointais un espace vide sur le côté droit + ''; Ou peut-être pas je ne sais pas.