Declaración de variables JavaScript en AngularJS

Estoy leyendo el código fuente de AngularJS y no pude evitar observar lo siguiente:

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

Esta línea tiene sentido para mí:

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

"¿Usar angular si ya está definido (de una inclusión anterior?) En la window, o asignar window.angular a un object vacío y establecer la variable local angular a window.angular".

Algunas preguntas:

  1. ¿Por qué ya se definiría window.angular (aparte del caso obvio de alguien que ya lo ha incluido), y por qué nos importaría?
  2. ¿Por qué asignar _angular y angular?

Pasando por el historial de confirmaciones en GitHub, esto es para el modo no noConflict , el caso en el que tiene una reference anterior a una variable llamada angular que desea conservar.

Aquí está la confirmación que agregó _angular en .

La característica fue eliminada en este compromiso y la reference _angular es networkingundante en este punto.

Plantearé un problema en GH o haré una request de extracción en breve. Actualización – hizo un PR.