2014-04-23 157 views
5

我細讀AngularJS源代碼,不由得注意以下幾點:JavaScript變量聲明中AngularJS

_angular   = window.angular, 
/** @name angular */ 
angular   = window.angular || (window.angular = {}), 

此行對我來說很有意義:

angular   = window.angular || (window.angular = {}), 

「使用角如果已經在窗口中定義了(從以前的包含?),或者將window.angular分配給一個空對象,並將角度局部變量設置爲window.angular。「

一些問題:

  1. 爲什麼會window.angular已經被定義(比其他人明顯的情況下,已經包含了它),我們爲什麼要在乎?
  2. 爲什麼指定_angular以及角?

回答

3

通過在GitHub上提交歷史走向,這是noConflict模式,在這裏你有一箇舊引用一個名爲angular要保留變量的情況下。

這是commit that added _angular in

該功能然後被刪除in this commit和​​參考在這一點上是多餘的。

我會在GH上提出問題或很快提出拉取請求。更新 - 成爲公關。

+0

你很快,哈哈=) –

+0

https://github.com/angular/angular.js/pull/7215 –

+0

And ...合併https://github.com/angular/angular.js/commit/06d0f1aea6ffa0767aae7c9c99585b7197dcdbd6 –