在JavaScript中更改另一个函数中的变量

use*_*426 3 javascript variables function

我是JavaScript的新手,我遇到了一些变量和函数的属性问题.

我想要发生的是在一个函数中定义一个var,在另一个函数中更改值,然后将新值返回到最初定义它的函数.

这是我做的一个简单示例:

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

function doubleIt(num){
    num *= 2;
    return num;
}
Run Code Online (Sandbox Code Playgroud)

运行此操作时,警报仍会显示x的原始值.是否有改变原始功能的值?

mel*_*okb 7

最简单的方法是将结果分配回变量

x = doubleIt(x);
Run Code Online (Sandbox Code Playgroud)

演示: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;
}
Run Code Online (Sandbox Code Playgroud)

演示:http://jsfiddle.net/dwJaT/