2013-07-12 46 views
0

我仍然在處理一些JavaScript變量處理問題,對此我有點困惑。變量不在Firebug中顯示

我有這樣的文件中聲明的變量:

(function (myControls, $, undefined) { 

    var selectedLifeArea; 
    ... 

但尋找這些螢火蟲他們沒有下myControls「命名空間」列爲我的預期時,僅列出了這些函數。這是爲什麼?

+0

...也許因爲你的代碼被包裝在什麼似乎是一個[IIFE](http://benalman.com/news/2010/ 11 /立即調用的函數表達式/)? – gustavohenke

+0

那麼它肯定應該在該範圍內列出? – Jammer

+1

這聽起來像你對「範圍」的理解是有缺陷的。 –

回答

2

你的代碼被包裝在它自己的範圍內。

嘗試在js調試器中添加一些中斷,然後您可以讀取這些變量。


這裏是一個簡要說明:

var globalVariable; 

(function() { 

    var localVariable; 

    // can access both `globalVariable` and `localVariable` 
    ... 
)(); 

// can only access `globalVariable` 
+0

我得到那個範圍的東西,我不明白爲什麼它沒有列在Firebug INSIDE範圍之內,Firebog沒有列出myControls.selectedLifeArea – Jammer

+0

@Jammer,因爲沒有這樣的的東西作爲'myControls.selectedLifeArea' – Neal

+1

@Jammer爲什麼會有'myControls.selectedLifeArea'? 'selectedLifeArea'是一個局部變量,而不是'myControls'的屬性......而'myControls'只是一個參數。也許你需要發佈更多的代碼 – Ian