2012-03-24 90 views
1

我很新的JavaScript,我遇到了一些變量和函數的屬性問題。在JavaScript中的另一個函數中更改變量

我想要發生的事情是在一個函數中定義一個var,並在另一個函數中更改該值,然後將新值返回給最初定義的函數。

下面是一個簡單的示例,我提出:

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

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

當此運行警報仍顯示x的原始值。是否有一個在原有功能的價值改變?

回答

5

最簡單的方法是將結果分配回變量

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/

+1

1。欲瞭解更多信息,谷歌「傳遞價值」。 – ruakh 2012-03-24 21:08:36

+0

我認爲拳頭更「正常」。 – 2012-03-24 21:17:29

相關問題