इस तरह के कोड को आमतौर पर ट्रांसपॉइलर (जैसे बाबेल) द्वारा उत्पन्न किया जाता है, ताकि आधुनिक जावास्क्रिप्ट को परिवर्तित किया जा सके - जो विनिर्देश के सबसे हालिया परिवर्धन का उपयोग करता है - एक जावास्क्रिप्ट संस्करण के लिए जो अधिक व्यापक रूप से समर्थित है।
यहाँ एक उदाहरण है जहां यह वाष्पीकरण पैटर्न होता है:
मान लें कि ट्रांसप्लिकेशन से पहले हमारे पास यह मूल कोड है:
import {myfunc} from "mymodule";
myfunc();
यह ES5- संगत कोड बनाने के लिए, आप ऐसा कर सकते हैं:
"use strict";
var mymodule = require("mymodule");
mymodule.myfunc();
लेकिन यहां हम मान के myfuncसाथ निष्पादित mymoduleकरेंगे this, जो मूल कोड में नहीं हो रहा है। और हालांकि कि हो सकता है नहीं हमेशा एक मुद्दा हो, यह समारोह बर्ताव करता है सुनिश्चित करने के लिए बेहतर है बस इसे मूल संस्करण में करते हैं भले ही उस समारोह एक का प्रयोग करेंगे, thisकैसे असामान्य या यहाँ तक कि बेकार के उपयोग कि - संदर्भ thisमें myfunc(हो सकता है क्योंकि मूल संस्करण में भी यह होगा undefined)।
उदाहरण के लिए, यदि मूल कोड this.memberFun()फ़ंक्शन में एक संदर्भ के कारण एक त्रुटि को फेंक देगा, तो यह ट्रांसपेंस्ड संस्करण में भी फेंक देगा।
तो यह है कि अल्पविराम ऑपरेटर उस अंतर से छुटकारा पाने के लिए उपयोग किया जाता है:
(0, mymodule.myfunc)();
दी, कोड में है कि आप अपने आप को लिखते हैं, आप एक अच्छा उपयोग के मामले इस पैटर्न के लिए कभी नहीं होगा, जैसा कि आप प्रयोग नहीं करेंगे thisमें myfuncपहली जगह में।
bindविधि बांधता है। यहाँ यह केवल एक संदर्भ परिवर्तन है। आप बंधन (द्वारा बनाए गए बंधनbind) को काट या खो नहीं सकते ।