2010-05-12 18 views
1

Voici la situation:mettre à jour la variable globale à partir d'une fonction dans le javascript

J'ai une fonction qui a une variable locale. Je voudrais attribuer cette valeur à la variable globale et à nous la valeur dans une autre fonction.

Voici le code:

global_var = "abc"; 

function loadpages() 
{ 
    local_var = "xyz"; 
    global_var= local_var; 
} 

function show_global_var_value() 
{ 
    alert(global_var); 
} 

Je fonction d'appel de show_global_var_value() dans la page HTML, mais il montre la valeur = "xyz" non "abc"

Qu'est-ce que je fais mal ?

+3

Votre 'local_var' est global. Déclarez les variables avec le mot clé 'var' pour les rendre locales:' var local_var = "xyz"; ' –

+1

Je ne comprends pas où est votre problème. Il fait exactement ce que vous semblez vouloir. BTW, 'local_var' n'est pas local. Vous devez le déclarer avec 'var' pour le rendre local:' val local_var = "xyz"; ' – RoToRa

+0

Votre question n'a aucun sens. Décrivez votre raisonnement quant à la raison pour laquelle vous pensez que l'alerte devrait montrer "abc". Plus précisément, qu'est-ce que vous pensez que la fonction 'loadpages' est censée faire si elle ne veut pas mettre' global_var' à "xyz"? – Pointy

Répondre

0

Ce que vous devez faire en dehors de la déclaration des variables locales avec la déclaration var que d'autres déjà souligné, est la déclaration let introduit dans JS 1,7

var global_var = "abc"; 

function loadpages() 
{ 
    var local_var = "xyz"; 
    let global_var= local_var; 
    console.log(global_var); // "xyz" 
} 

function show_global_var_value() 
{ 
    console.log(global_var); // "abc" 
} 

Note: au moment à utiliser 1,7 JS (2014-01), vous devez déclarer la version dans la balise de script:

<script type="application/javascript;version=1.7"></script> 

Cependant let fait maintenant partie de ECMAScript Harmony norme, devrait donc être entièrement disponible dans un proche avenir.

+0

Je n'ai jamais vu une déclaration de version. C'est définitivement ** pas un must ** –