Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JavaScript variable declaration in AngularJS

I'm perusing the AngularJS source code and couldn't help but notice the following:

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

This line makes sense to me:

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

"Use angular if already defined (from a previous inclusion?) in window, or assign window.angular to an empty object and set angular local variable to window.angular."

Some questions:

  1. Why would window.angular already be defined (other than the obvious case of someone has already included it), and why would we care?
  2. Why assign _angular as well as angular?
like image 201
Calvin Froedge Avatar asked Oct 20 '22 09:10

Calvin Froedge


1 Answers

Going through the commit history on GitHub, this is for noConflict mode, the case where you have an old reference to a variable called angular you want to preserve.

Here is the commit that added _angular in.

The feature was then removed in this commit and the _angular reference is redundant at this point.

I'll raise an issue on GH or make a pull request shortly. Update - made a PR.

like image 195
Benjamin Gruenbaum Avatar answered Nov 02 '22 06:11

Benjamin Gruenbaum