2014-04-23 127 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 –