ஜாவாஸ்கிரிப்டில் மூடல்கள் என்ன & அவை எவ்வாறு செயல்படுகின்றன?

ஜாவாஸ்கிரிப்டில் மூடல்கள் ஒரு செயல்பாடு உருவாக்கப்படும் ஒவ்வொரு முறையும், செயல்பாட்டு உருவாக்கும் நேரத்தில் உருவாக்கப்படுகின்றன. குறியீட்டைப் பயன்படுத்தும் போது இது சிறந்த கட்டுப்பாட்டை வழங்குகிறது.

ஒரு செயல்பாடு சார்ந்த மொழி, இது பயனருக்கு நிறைய சுதந்திரத்தை அளிக்கிறது. நீங்கள் ஒரு செயல்பாட்டை மாறும் வகையில் உருவாக்கலாம், அதை மற்றொரு மாறிக்கு நகலெடுக்கலாம் அல்லது மற்றொரு செயல்பாட்டிற்கு ஒரு வாதமாக அனுப்பலாம் மற்றும் பின்னர் வேறு இடத்திலிருந்து அழைக்கலாம். ஜாவாஸ்கிரிப்டில் மூடல்கள் ஒரு செயல்பாடு உருவாக்கப்படும் ஒவ்வொரு முறையும், செயல்பாட்டு உருவாக்கும் நேரத்தில் உருவாக்கப்படுகின்றன. இந்த கட்டுரையில், பின்வரும் வரிசையில் மூடுதல்களைப் புரிந்துகொள்வோம்:

ஜாவாஸ்கிரிப்டில் மூடல் அறிமுகம்

ஒரு மூடல் என்பது ஒரு கலவையாகும் செயல்பாடு அதன் சுற்றியுள்ள நிலையைப் பற்றிய குறிப்புகளுடன் ஒன்றிணைக்கப்பட்டுள்ளது, அதாவது லெக்சிகல் சூழல். வேறு வார்த்தைகளில் கூறுவதானால், ஒரு மூடல் ஒரு உள் செயல்பாட்டிலிருந்து வெளிப்புற செயல்பாட்டின் நோக்கத்திற்கு அணுகலை வழங்குகிறது.





கோடர் - ஜாவாஸ்கிரிப்டில் மூடல்கள் - எடுரேகா

பெரும்பாலான டெவலப்பர்கள் ஜாவாஸ்கிரிப்டில் மூடல்களை நனவாகவோ அல்லது அறியாமலோ பயன்படுத்துகின்றனர். குறியீட்டைப் பயன்படுத்தும் போது இது சிறந்த கட்டுப்பாட்டை வழங்குகிறது. மேலும், எந்தவொரு நேரத்திலும் இது அடிக்கடி கேட்கப்படும் கேள்வி .



உதாரணமாக:

செயல்பாடு foo () {var x = 10 செயல்பாடு உள் () {திரும்ப x} உள் உள்} var get_func_inner = foo () console.log (get_func_inner ()) console.log (get_func_inner ()) console.log (get_func_inner ())

வெளியீடு:

10
10
10



இங்கே, நீங்கள் அணுகலாம் மாறி x இது செயல்பாடு foo () இல் செயல்பாட்டு உள் () மூலம் வரையறுக்கப்படுகிறது, பின்னர் இணைக்கப்பட்ட செயல்பாட்டின் செயல்பாட்டின் போது இணைக்கும் செயல்பாட்டின் நோக்கம் சங்கிலியைப் பாதுகாக்கிறது. எனவே, உள் செயல்பாடு x இன் மதிப்பை அதன் நோக்கம் சங்கிலி மூலம் அறியும். ஜாவாஸ்கிரிப்டில் நீங்கள் மூடுதல்களைப் பயன்படுத்தலாம்.

நடைமுறை மூடல்கள்

அந்த தரவுகளில் செயல்படும் ஒரு செயல்பாட்டுடன் லெக்சிகல் சூழலை இணைக்க மூடல்கள் உங்களை அனுமதிக்கின்றன. இதற்கு வெளிப்படையான இணைகள் உள்ளன பொருள் சார்ந்த நிரலாக்க , பொருள்களின் பண்புகளை ஒன்று அல்லது அதற்கு மேற்பட்ட முறைகளுடன் இணைக்க பொருள்கள் அனுமதிக்கின்றன.

இதன் விளைவாக, நீங்கள் எங்கு வேண்டுமானாலும் ஒரு மூடுதலைப் பயன்படுத்தலாம், நீங்கள் ஒரு பொருளை ஒரே முறையுடன் மட்டுமே பயன்படுத்தலாம்.

உதாரணமாக:

function makeSizer (size) {return function () {document.body.style.fontSize = size + 'px'}} var size12 = makeSizer (12) var size14 = makeSizer (14) var size16 = makeSizer (16)

மேலே உள்ள எடுத்துக்காட்டு பொதுவாக திரும்ப அழைப்பாக இணைக்கப்பட்டுள்ளது: நிகழ்வுக்கு பதிலளிக்கும் வகையில் செயல்படுத்தப்படும் ஒற்றை செயல்பாடு.

நோக்கம் சங்கிலி

ஜாவாஸ்கிரிப்டில் மூடல்கள் மூன்று நோக்கங்களைக் கொண்டுள்ளன:

  • உள்ளூர் நோக்கம்
  • வெளி செயல்பாடுகள் நோக்கம்
  • உலகளாவிய நோக்கம்

ஒரு பொதுவான தவறு, வெளிப்புற செயல்பாடு ஒரு உள்ளமைக்கப்பட்ட செயல்பாடாக இருந்தால், வெளிப்புற செயல்பாட்டின் நோக்கத்திற்கான அணுகல் வெளிப்புற செயல்பாட்டின் இணைக்கும் நோக்கத்தை உள்ளடக்கியது, மேலும் செயல்பாட்டு நோக்கங்களின் சங்கிலியை திறம்பட உருவாக்குகிறது.

// உலகளாவிய நோக்கம் var x = 10 செயல்பாட்டுத் தொகை (அ) {வருவாய் செயல்பாடு (பி) {வருவாய் செயல்பாடு (சி) {// வெளிப்புற செயல்பாடுகள் நோக்கம் திரும்பும் செயல்பாடு (ஈ) {// உள்ளூர் நோக்கம் ஒரு + பி + சி + டி + x}}}} console.log (தொகை (1) (2) (3) (4)) // பதிவு 20

அநாமதேய செயல்பாடுகள் இல்லாமல் இதை எழுதலாம்:

// உலகளாவிய நோக்கம் var x = 10 செயல்பாட்டுத் தொகை (அ) {வருவாய் செயல்பாடு தொகை 2 (பி) {வருவாய் செயல்பாடு தொகை 3 (சி) {// வெளிப்புற செயல்பாடுகளின் நோக்கம் திரும்பும் செயல்பாடு தொகை 4 (ஈ) {// உள்ளூர் நோக்கம் ஒரு + பி + சி + d + x}}}} var s = sum (1) var s1 = s (2) var s2 = s1 (3) var s3 = s2 (4) console.log (s3) // log 20

மேலேயுள்ள எடுத்துக்காட்டில், உள்ளமைக்கப்பட்ட செயல்பாடுகளின் தொடர் உள்ளது, இவை அனைத்தும் ஒரு செயல்பாட்டின் வெளிப்புற நோக்கத்திற்கான அணுகலைக் கொண்டுள்ளன. ஆகவே, மூடல்கள் அவை அறிவிக்கப்பட்ட அனைத்து வெளிப்புற செயல்பாட்டு நோக்கங்களுக்கும் அணுகலைக் கொண்டுள்ளன என்று நீங்கள் கூறலாம்.

ஒரு சுழலுக்குள் மூடல்

ஒரு ஒவ்வொரு குறியீட்டிலும் அநாமதேய செயல்பாட்டை சேமிக்க ஜாவாஸ்கிரிப்டில் மூடுதல்களைப் பயன்படுத்தலாம் வரிசை . ஒரு எடுத்துக்காட்டை எடுத்து, ஒரு வட்டத்திற்குள் மூடல்கள் எவ்வாறு பயன்படுத்தப்படுகின்றன என்பதைப் பார்ப்போம்.

உதாரணமாக:

செயல்பாடு வெளிப்புறம் () {var arr = [] var i for (i = 0 i<3 i++) { // storing anonymus function arr[i] = function () { return i } } // returning the array. return arr } var get_arr = outer() console.log(get_arr[0]()) console.log(get_arr[1]()) console.log(get_arr[2]())

வெளியீடு:

ஜாவாவில் குறிப்பு மூலம் கடந்து செல்லுங்கள்

3
3
3
3

இதன் மூலம், எங்கள் கட்டுரையின் முடிவுக்கு வந்துள்ளோம். ஜாவாஸ்கிரிப்டில் மூடல்கள் எவ்வாறு செயல்படுகின்றன என்பதையும் குறியீட்டின் சிறந்த கட்டுப்பாட்டைப் பெற அவை எவ்வாறு பயன்படுத்தப்படுகின்றன என்பதையும் நீங்கள் புரிந்து கொண்டீர்கள் என்று நம்புகிறேன்.

ஜாவாஸ்கிரிப்டில் மூடல் பற்றி இப்போது உங்களுக்குத் தெரியும், பாருங்கள் வழங்கியவர் எடுரேகா. HTML5, CSS3, Twitter பூட்ஸ்டார்ப் 3, jQuery மற்றும் Google API களைப் பயன்படுத்தி ஈர்க்கக்கூடிய வலைத்தளங்களை எவ்வாறு உருவாக்குவது மற்றும் அமேசான் எளிய சேமிப்பக சேவைக்கு (S3) பயன்படுத்துவது எப்படி என்பதை அறிய வலை அபிவிருத்தி சான்றிதழ் பயிற்சி உங்களுக்கு உதவும்.

எங்களுக்கு ஒரு கேள்வி கிடைத்ததா? 'ஜாவாஸ்கிரிப்டில் மூடல்கள்' இன் கருத்துகள் பிரிவில் இதைக் குறிப்பிடவும், நாங்கள் உங்களைத் தொடர்புகொள்வோம்.