2014-09-18 3 views
0

Существует глобальная переменная, называемая числами. Функция вычисляет случайное число и сохраняет его в переменной mynumber.Обновление глобальной переменной из функции

var mynumber; 

function one(){ 
var mynumber = Math.floor(Math.random() * 6) + 1; 
} 

Мне нужно использовать его в отдельной функции как belows. Но ошибка говорит undefined - это означает, что значение из функции one не обновляется.

function two(){ 
alert(mynumber); 
} 

Как преодолеть эту проблему. Есть ли способ обновить глобальную переменную mynumber.

+1

В вашем коде есть две переменные mynumber. ваша глобальная переменная вне функции, никогда не обновляется. удалите var из mynumber внутри вашей функции. –

ответ

3

Если вы объявляете переменную с var, она создает ее в вашей текущей области. Если вы этого не сделаете, он объявит об этом в глобальной области.

var mynumber; 

function one(){ 
    mynumber = Math.floor(Math.random() * 6) + 1; // affects the global scope 
} 

Вы также можете указать, что вы хотите, глобальный масштаб, даже если определить локальную переменную тоже:

function one(){ 
    var mynumber = 1; // local 
    window.mynumber = Math.floor(Math.random() * 6) + 1; // affects the global scope 
} 

Зная, что глобальный охват является window вы можете получить довольно шалунов с модифицирующими глобальные переменные:

function one(){ 
    var mynumber = Math.floor(Math.random() * 6) + 1; // local 
    window['mynumber'+mynumber] = mynumber; // sets window.mynumber5 = 5 (or whatever the random ends up as) 
} 
3

Что у вас есть:

var mynumber = Math.floor(Math.random() * 6) + 1; 

Объявляет новую локальную переменную, а затем устанавливает значение. Отбросьте var, и вы обновите оригинал.

function one(){ 
    mynumber = Math.floor(Math.random() * 6) + 1; 
} 
Смежные вопросы