अगर बैबल ES6 को ES5 में तब्दील करता है और ES5 फ़ाइल को आउटपुट करता है, तो ऐप आउटपुट फ़ाइल में बिल्कुल ES5 कोड होने पर ब्राउज़र को पॉलीफ़िल फ़ाइल शामिल करने की आवश्यकता क्यों होती है?
उत्तर:
उत्तर № 1 के लिए 1बैबल ES5 कोड में ES6 (और नया) कोड का अनुवाद करता है। उदाहरण के लिए, यह तीर फ़ंक्शंस को फिर से लिखता है (() => {}
) ES5 कार्यों के लिए (function() {}
)। हालांकि, ES6 सिर्फ कुछ नए सिंटैक्स से बहुत अधिक है।
चूंकि बैबेल केवल वाक्य रचना (जैसे तीर) करता हैफ़ंक्शंस), आप नए ग्लोबल्स जैसे कि प्रॉमिस या नए देशी तरीकों जैसे स्ट्रिंग.पैडस्टार्ट (बाएं-पैड) का समर्थन करने के लिए बैबल-पॉलीफिल का उपयोग कर सकते हैं। यह कोर-जेएस और रीजेनरेटर का उपयोग करता है। अधिक जानकारी के लिए हमारे बैबल-पॉलीफिल डॉक्स देखें।
सभी नए कार्यों को लागू करने की आवश्यकता हैएक पॉलीफ़िल। और इन पॉलीफिल्स को विश्व स्तर पर आपकी परियोजना में शामिल किया जाना चाहिए। अन्यथा ES6 फ़ंक्शन के प्रत्येक उपयोग को ES5 कोड में उस फ़ंक्शन के कार्यान्वयन से बदल दिया जाएगा। इसलिए यदि आप उदा। Array#findIndex
दस बार, ट्रांसप्लड कोड में भी दस बार कार्यान्वयन शामिल होगा। यही कारण है कि पॉलीफ़िल को विश्व स्तर पर जोड़ना पड़ता है और केवल ट्रांसप्लोरेशन चरण द्वारा नहीं जोड़ा जाता है।