Comment puis-je accéder à certaines variables à l'intérieur de
$(document).ready(function(){
var foo=0;
var bar = 3;
});
de la console Google Chrome ? Si j'essaie alert(foo), je recevrai un message disant qu'il n'est pas défini.
Comment puis-je accéder à certaines variables à l'intérieur de
$(document).ready(function(){
var foo=0;
var bar = 3;
});
de la console Google Chrome ? Si j'essaie alert(foo), je recevrai un message disant qu'il n'est pas défini.
Vous ne pouvez pas car ils se trouvent dans un espace de fermeture. Ici il explique comment fonctionne la fermeture (Comment fonctionnent les fermetures JavaScript ?). Pour accéder à la variable, il suffit de mettre un point d'arrêt à l'intérieur de la fonction $(document).ready
Si vous avez vraiment besoin d'accéder à ces variables depuis différentes parties de votre code (les initialiser au chargement du document, puis y accéder ailleurs, par exemple), alors vous devez les déclarer en dehors de la fermeture de la fonction.
Si et seulement si c'est le cas, je ne suis pas partisan d'encombrer l'espace global. Je vous suggère d'utiliser un objet de base pour cela :
var myObj = {};
$(function() {
myObj.foo = 0;
myObj.bar = 3;
});
Notez qu'ils ne seront définis qu'une fois le document chargé! Par conséquent, alert(myObj.foo);
(ou quelque chose de similaire) placé immédiatement après le bloc $(function() { ... });
renverra undefined
!
Si vous avez seulement besoin d'y accéder dans ce contexte, alors ne déclarez rien en dehors de la fonction. Et essayez de déboguer votre code avec d'autres méthodes. Avec Chrome, console.log
est assez utile, par exemple.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.