ఫంక్షన్-ఆధారిత భాష, ఇది వినియోగదారుకు చాలా స్వేచ్ఛను ఇస్తుంది. మీరు ఒక ఫంక్షన్ను డైనమిక్గా సృష్టించవచ్చు, దాన్ని మరొక వేరియబుల్కు కాపీ చేయవచ్చు లేదా మరొక ఫంక్షన్కు ఆర్గ్యుమెంట్గా పాస్ చేయవచ్చు మరియు తరువాత వేరే ప్రదేశం నుండి కాల్ చేయవచ్చు. ఫంక్షన్ సృష్టించిన ప్రతిసారీ, ఫంక్షన్ సృష్టి సమయంలో జావాస్క్రిప్ట్లోని మూసివేతలు సృష్టించబడతాయి. ఈ వ్యాసంలో, మేము ఈ క్రింది క్రమంలో మూసివేతలను అర్థం చేసుకుంటాము:
జావాస్క్రిప్ట్లో మూసివేతలకు పరిచయం
మూసివేత a యొక్క కలయిక ఫంక్షన్ దాని చుట్టుపక్కల స్థితికి సంబంధించిన సూచనలతో కలిసి ఉంటుంది, అనగా లెక్సికల్ పర్యావరణం. మరో మాటలో చెప్పాలంటే, మూసివేత మీకు అంతర్గత ఫంక్షన్ నుండి బాహ్య ఫంక్షన్ యొక్క పరిధికి ప్రాప్యతను అందిస్తుంది.
ఉదాహరణ ప్రోగ్రామ్తో c ++ లో డైనమిక్ మెమరీ కేటాయింపు
చాలా మంది డెవలపర్లు జావాస్క్రిప్ట్లో మూసివేతలను స్పృహతో లేదా తెలియకుండానే ఉపయోగిస్తున్నారు. కోడ్ను ఉపయోగిస్తున్నప్పుడు ఇది మంచి నియంత్రణను అందిస్తుంది. అలాగే, ఇది ఏ సమయంలోనైనా తరచుగా అడిగే ప్రశ్న .
ఉదాహరణ:
ఫంక్షన్ 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 యొక్క విలువను తెలుసు. ఈ విధంగా మీరు జావాస్క్రిప్ట్లో మూసివేతలను ఉపయోగించవచ్చు.
ప్యాకేజీని ఎలా సృష్టించాలి
ప్రాక్టికల్ మూసివేతలు
మూసివేతలు ఆ డేటాపై పనిచేసే ఫంక్షన్తో లెక్సికల్ వాతావరణాన్ని అనుబంధించడానికి మిమ్మల్ని అనుమతిస్తాయి. దీనికి స్పష్టమైన సమాంతరాలు ఉన్నాయి ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్ , ఇక్కడ వస్తువు యొక్క లక్షణాలను ఒకటి లేదా అంతకంటే ఎక్కువ పద్ధతులతో అనుబంధించడానికి వస్తువులు అనుమతిస్తాయి.
పర్యవసానంగా, మీరు ఎక్కడైనా మూసివేతను ఉపయోగించవచ్చు, మీరు సాధారణంగా ఒకే పద్ధతిలో వస్తువును ఉపయోగించవచ్చు.
ఉదాహరణ:
ఫంక్షన్ మేక్సైజర్ (పరిమాణం) {రిటర్న్ ఫంక్షన్ () {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
పై ఉదాహరణలో, సమూహ ఫంక్షన్ల శ్రేణి ఉంది, ఇవన్నీ ఒక ఫంక్షన్ యొక్క బాహ్య పరిధికి ప్రాప్యతను కలిగి ఉంటాయి.అయితే, మూసివేతలు అవి ప్రకటించబడిన అన్ని బాహ్య ఫంక్షన్ స్కోప్లకు ప్రాప్యతను కలిగి ఉన్నాయని మీరు చెప్పగలరు.
ansible vs చెఫ్ vs తోలుబొమ్మ
ఒక లూప్ లోపల మూసివేత
ఒక యొక్క ప్రతి సూచిక వద్ద అనామక ఫంక్షన్ను నిల్వ చేయడానికి మీరు జావాస్క్రిప్ట్లో మూసివేతలను ఉపయోగించవచ్చు అమరిక . ఒక ఉదాహరణ తీసుకుందాం మరియు లూప్లో మూసివేతలు ఎలా ఉపయోగించబడుతున్నాయో చూద్దాం.
ఉదాహరణ:
ఫంక్షన్ బాహ్య () {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, ట్విట్టర్ బూట్స్ట్రాప్ 3, j క్వెరీ మరియు గూగుల్ API లను ఉపయోగించి ఆకట్టుకునే వెబ్సైట్లను ఎలా సృష్టించాలో తెలుసుకోవడానికి మరియు అమెజాన్ సింపుల్ స్టోరేజ్ సర్వీస్ (S3) కు ఎలా అమలు చేయాలో తెలుసుకోవడానికి మీకు సహాయం చేస్తుంది.
మాకు ప్రశ్న ఉందా? దయచేసి దీనిని “జావాస్క్రిప్ట్లోని మూసివేతలు” యొక్క వ్యాఖ్యల విభాగంలో పేర్కొనండి మరియు మేము మిమ్మల్ని సంప్రదిస్తాము.