2014-04-23 6 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 हटा दिया गया था और _angular संदर्भ इस बिंदु पर अनावश्यक है।

मैं जीएच पर एक मुद्दा उठाउंगा या जल्द ही पुल अनुरोध कर दूंगा। अद्यतन - एक पीआर बनाया।

+0

आप तेज़ हैं, हाहा =) –

+0

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

+0

और ... विलय https://github.com/angular/angular.js/commit/06d0f1aea6ffa0767aae7c9c99585b7197dcdbd6 –