2015-08-14 5 views
0
var posVariable = random12; 

Я зову ниже функцию, нажав элементJavascript - значение измененного переменной внутри функции на вызов функции

function(){ 
    .. 
    do some operation using the current variable value; 
    posVariable = random23; 
    .. 
} 

Моим вопрос заключается в том, что если я называю ту же функцию следующей время от нажатие элемент какой будет 'posVariable' внутри функции? Если значение будет 'random12' с его значением глобальной переменной, что мне делать, чтобы получить мое измененное значение для следующего звонка?

+0

ли вы проверить, что это значение в 'posVariable'? Если это не то, что вы ожидали, добавьте тестовый код к вашему вопросу. –

+0

posVariable объявляется глобально за пределами функции, поэтому его состояние поддерживается по множеству вызовов функций, если будет то, что было последним установлено, в этом случае он будет равен random23 после вызова функции. – BhavO

ответ

0

Это будет последнее заданное значение, которое в случае, если вы опишете, будет random23. Однако, будучи глобальной переменной, другой код также может изменить значение. Если вы действительно хотите, чтобы значение быть частной функции, вы можете создать closure:

var f = (function() { 
    var posVariable = random12; 
    return function() { 
     // do some operation using the current variable value 
     posVariable = random23; 
    }; 
}()); 
0

При изменении переменной (без переопределения его в более глубоком объеме), он будет держать это новое значение, пока вы не измените снова. Например:

var x = 0; 
 

 
function foo(){ 
 
    x = 3; // You are modifying the existing variable 
 
} 
 

 
function bar(){ 
 
    var x = 6; // You are defining a new variable in the scope of this function 
 
} 
 

 
console.log(x); // 0 
 

 
foo(); 
 

 
console.log(x); // 3 
 

 
bar(); 
 

 
console.log(x); // 3

Смежные вопросы