2012-08-24 31 views
1

我嘗試在我的函數中使用全局變量,參見下文。我可以在我的func1中使用全局變量來存儲一個值,例如。 77,好的。在func2中,我嘗試使用存儲在全局變量中的當前值,但結果未定義。GAS:在函數中使用全局變量的問題

任何意見如何讓這個工作?

doGet() { 
    ... 
    var buttonValue; 
    ... 

func1(e,buttonValue) { 
    ... 
    buttonValue = size; 
    throw buttonValue; 
    --> buttonValue ok! 
    ... 
} 

func2(e,buttonValue) { 
    ... 
    throw buttonValue; 
    --> buttonValue undefined! 
} 

回答

1

你不能那樣做。全局變量的值不能在處理函數改變等 使用CacheService來存儲具有全局範圍值

這裏是一個代碼示例:

function func1(){ 
    CacheService.getPrivateCache().put('var_name', 'var_value'); 
} 

function func2(){ 
    var var_value = CacheService.getPrivateCache().get('var_name'); 
} 
+0

的doGet(){... VAR緩存= CacheService.getPrivateCache(); ... func1(e){... cache.put('foo',size); ... ---> ReferenceError:「緩存」未定義。應該如何使用CacheService?其實我只是試圖從處理函數中獲取一個值到全局範圍,所以其他任何解決方案都可以幫助我。 – user1598835

+0

我編輯了我的答案,包含一段代碼示例。 – Srik

+0

它不起作用在我的代碼中:TypeError:無法找到放入對象CacheService的函數。我也嘗試使用var CacheService = CacheService.getPrivateCache();在doGet()中,但它沒有幫助。我錯過了一些觀點嗎? – user1598835