2014-04-23 23 views
5
Ben angularjs kaynak kodunu okuyorum ve yardım ancak aşağıdaki fark edemedikleri

değişken JavaScript ifadesi:angularjs

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

Bu çizgi bana mantıklı:

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

"açısal kullanın Önceden tanımlanmışsa (önceki bir içerden?), veya boş bir nesneye window.angular atayın ve açısal yerel değişkeni window.calgular olarak ayarlayın. "

bazı sorular:

  1. Neden önceden tanımlanmış window.angular olurdu (başkası bariz durum zaten yer verdi hariç), ve neden ilgilensin?
  2. Neden açısal yanı açısal olarak atar?

cevap

3

GitHub üzerinde işlemek tarih boyunca dönecek olursak bu noConflict modu, size korumak istediğiniz angular adında bir değişkene eski referansı durumda içindir.

İşte commit that added _angular in. Bu özellik daha sonra in this commit kaldırılmış ve _angular başvuru bu noktada gereksizdir.

GH konusunda bir sorun oluşturacağım veya kısaca çek isteği göndereceğim. Güncelleme - bir PR yaptı.

+0

Hızlısınız, haha ​​=) –

+0

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

+0

Ve ... birleştirilmiş https://github.com/angular/angular.js/commit/06d0f1aea6ffa0767aae7c9c99585b7197dcdbd6 –