2015-08-14 83 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

相關問題