2012-09-14 52 views
0

能有人請解釋標識符解析如何工作爲Javascript採取以下方案:標識符解析如何在Javascript中工作?

  1. 全局函數被調用。
  2. 調用用戶定義的javascript對象內的函數。
+1

的明確的參考是[ECMA-262第10](http://ecma-international.org/ecma-262/5.1/#sec-10 ),上有comp.lang.javascript FAQ上閉合,在詳細解釋[標識符解析,執行上下文和範圍的鏈](http://jibbering.com/faq/notes/closures/#clIRExSc)權威製品。該文章是爲ECMA-262 ed 3編寫的,儘管術語發生了變化,但最近的ES5基本上是相同的。 – RobG

回答

0

你必須學會​​在ECMA腳本的背景和範圍來理解這一點。而在它之間是標識符還是變量?

標識符通常標記到窗口對象。說String()它實際上是window.String()。

通常,當一個頁面加載所有變量和函數被添加作爲屬性的窗口對象。在瀏覽器的情況下,窗口對象成爲全局上下文(GC)。所以當一個全局函數(這只是一個沒有像全局函數那樣的方法)被調用時,這個變量只是在全局上下文中查找的。因此它會識別變量。

但是,如果有一個函數在其內部的內功能是有識別然後一個全局變量將是兩個摺痕第一它會檢查在功能範圍,然後在全局範圍。如果變量是一個函數變量。那麼變量總是存在在功能的執行上下文(EC)