Изменение переменной в другой функции в JavaScript - PullRequest
3 голосов
/ 25 марта 2012

Я довольно плохо знаком с JavaScript и у меня возникли проблемы с некоторыми свойствами переменных и функций.

Я хочу, чтобы в одной функции было определено значение var, в другой изменено значение, а затем возвращено новое значение функции, в которой оно было первоначально определено.

Вот простой пример, который я сделал:

function getIt(){
    var x = 3;
    doubleIt(x);
    alert("The new value is: " + x);
}

function doubleIt(num){
    num *= 2;
    return num;
}

При запуске оповещения по-прежнему отображается исходное значение x. Существует ли синтаксис для изменения значения в исходной функции?

1 Ответ

7 голосов
/ 25 марта 2012

Самый простой способ - присвоить результат обратно переменной

x = doubleIt(x);

Демо: http://jsfiddle.net/ES65W/


Если вы действительно хотите передать по ссылке, вам нужен контейнер объекта для переноса значения. Объекты передаются по ссылке в JavaScript:

function getIt(){
    var myObj={value:3};
    doubleIt(myObj);
    alert("the new value is: " + myObj.value);
}

function doubleIt(num){
    num.value *=2;
    //return num;
}

Демо: http://jsfiddle.net/dwJaT/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...