2015-10-08 1 views
0

Привет мне нужна помощь в кодировании JavaScript я хочу изменить динамическую переменную с помощью функции, мой код, как этотобновление динамической переменной с помощью функции в JavaScript

var a=0; 
var b=0; 

function UpdateValue(Variable,x) 

    { 
     Variable=x; 

    } 

UpdateValue(a,2); 
UpdateValue(b,3); 

console.log("a: ", a); //returns a: 0 
console.log("b: ", b); //returns b: 0 

Я всегда получаю 0 результат. переменная не обновляет Каков правильный код для моей функции?

ответ

0

Это не сработает, потому что примитивы переданы значением в javascript. Поэтому, если вы передаете как параметр, изменение его в функции не повлияет на переданный параметр.

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

Как ржали

var a=[0]; 
var b=[0]; 

function UpdateValue(Variable,x) 

    { 
     Variable[0]=x; 

    } 

UpdateValue(a,2); 
UpdateValue(b,3); 

console.log("a: ", a); //prints a: [2] 
console.log("b: ", b); //prints b: [3] 
+0

Благодарим за быстрый отклик. Пример выше полезен. Можете ли вы привести пример с помощью Object ?. благодаря – Nathaniel

0

Не возможно. Аргументы в функциях будут ссылаться на те же значения, что и аргументы в вызове функции; нет возможности переопределить функцию в вызывающей программе. Вы можете изменить переменную содержание, если переменная является объектом (или массивом).

Вы должны переосмыслить, почему вам нужно переназначить переменную внешнего контекста во внутреннем контексте. Это пахнет XY problem.