ఈ కథనం JavaScript 'ఫంక్షన్ నిర్వచించబడనప్పుడు లోపం'ని వివరిస్తుంది.
జావాస్క్రిప్ట్ ఫంక్షన్ నిర్వచించబడలేదు లోపం (కానీ ఇది నిర్వచించబడింది)
కొన్నిసార్లు, ఫంక్షన్ కోడ్లో నిర్వచించబడింది, కానీ ఇప్పటికీ, మీరు క్రింది లోపాన్ని ఎదుర్కోవచ్చు:
ఫంక్షన్ను నిర్వచించిన తర్వాత పై లోపం సంభవించడానికి రెండు ప్రధాన కారణాలు ఉన్నాయి, అవి క్రింద ఇవ్వబడ్డాయి:
కారణం 1: ఫంక్షన్ తప్పుగా వ్రాయబడింది లేదా తప్పు క్యాపిటలైజేషన్ ఉంది
కొన్నిసార్లు, ఫంక్షన్ తప్పు స్పెల్లింగ్లతో పిలువబడుతుంది. జావాస్క్రిప్ట్ కేస్-సెన్సిటివ్ లాంగ్వేజ్ కాబట్టి, జావాస్క్రిప్ట్ ఇంటర్ప్రెటర్ దానిని కనుగొని '' ఫంక్షన్ నిర్వచించబడలేదు ” లోపం.
ఉదాహరణ
మొదట, మేము ఒక ఫంక్షన్ను నిర్వచిస్తాము ' మొత్తం 'ఇది రెండు సంఖ్యల మొత్తాన్ని అందిస్తుంది' a 'మరియు' బి ”:
ఫంక్షన్ మొత్తం ( ఎ, బి ) {తిరిగి a + బి ;
}
ఫంక్షన్కి కాల్ చేయండి' మొత్తం 'వలే' మొత్తం 'సంఖ్యలను పాస్ చేయడం ద్వారా' 4 'మరియు' 7 ”:
కన్సోల్. లాగ్ ( మొత్తం ( 4 , 7 ) )
ఇది లోపాన్ని విసురుతుంది' మొత్తం నిర్వచించబడలేదు ”:
దాన్ని ఎలా పరిష్కరించాలి?
ఈ లోపాన్ని పరిష్కరించడానికి, ఫంక్షన్ పేరు సరిగ్గా స్పెల్లింగ్ చేయబడిందని మరియు సరైన క్యాపిటలైజేషన్ ఉందని నిర్ధారించుకోండి:
కన్సోల్. లాగ్ ( మొత్తం ( 4 , 7 ) ) ;ఇప్పుడు, ఫంక్షన్ ' మొత్తం 'విజయవంతంగా కాల్ చేయబడింది మరియు రెండు సంఖ్యల మొత్తాన్ని ముద్రించండి' 4 'మరియు' 7 ”:
కారణం 2: ఫంక్షన్ వేరే స్కోప్లో నిర్వచించబడింది
జావాస్క్రిప్ట్లో, ప్రతి ఫంక్షన్ దాని పరిధిని కలిగి ఉంటుంది మరియు ఒక ఫంక్షన్ దాని స్వంత పరిధిలో నిర్వచించబడిన వేరియబుల్స్ మరియు ఫంక్షన్లను మాత్రమే యాక్సెస్ చేయగలదు. ఒక ఫంక్షన్ వేరే స్కోప్లో నిర్వచించబడితే, అది ప్రస్తుత స్కోప్కు అందుబాటులో ఉండకపోవచ్చు, ఫలితంగా “ ఫంక్షన్ నిర్వచించబడలేదు ” లోపం.
ఉదాహరణ
ఒక ఫంక్షన్ నిర్వచించండి ' మొత్తం() 'రెండు పారామితులతో' a 'మరియు' బి 'ఫంక్షన్ లోపల' ముద్రణ() ”:
ఫంక్షన్ ప్రింట్ ( ) {ఫంక్షన్ మొత్తం ( ఎ, బి ) {
కన్సోల్. లాగ్ ( a + బి ) ;
}
}
ఫంక్షన్కి కాల్ చేయండి' మొత్తం() ”:
మొత్తం ( 5 , 10 ) ;ప్రింట్() ఫంక్షన్లో మొత్తం() నిర్వచించబడింది కానీ స్కోప్ నుండి వెలుపల యాక్సెస్ చేయబడినందున ఇది ఎర్రర్ను ఇస్తుంది:
దాన్ని ఎలా పరిష్కరించాలి?
ఫంక్షన్ తగిన స్కోప్లో నిర్వచించబడిందని నిర్ధారించుకోండి మరియు అది పిలవబడే ప్రదేశం నుండి యాక్సెస్ చేయబడుతుందని నిర్ధారించుకోండి. ఉదాహరణకు, ఫంక్షన్ మరొక ఫంక్షన్ లోపల నిర్వచించబడితే, అది బయట నుండి యాక్సెస్ చేయబడకపోవచ్చు.
ప్రింట్() ఫంక్షన్ని నిర్వచించిన తర్వాత దానిలోని మొత్తం()ని కాల్ చేయండి:
ఫంక్షన్ ప్రింట్ ( ) {ఫంక్షన్ మొత్తం ( ఎ, బి ) {
కన్సోల్. లాగ్ ( a + బి ) ;
}
మొత్తం ( 1 , 4 ) ;
}
ప్రింట్() పద్ధతికి కాల్ చేయండి:
ముద్రణ ( ) ;అవుట్పుట్
లేదా మీరు ఫంక్షన్ను విడిగా నిర్వచించవచ్చు మరియు దానిని మరొక ఫంక్షన్ పరిధిలో ఈ క్రింది విధంగా కాల్ చేయవచ్చు:
ఫంక్షన్ మొత్తం ( ఎ, బి ) {కన్సోల్. లాగ్ ( a + బి ) ;
}
ఇక్కడ, మేము ప్రింట్() ఫంక్షన్లోని మొత్తం()ని పిలుస్తాము:
ఫంక్షన్ ప్రింట్ ( ) {మొత్తం ( 5 , 10 ) ;
}
ఫంక్షన్ను అమలు చేయడానికి ప్రింట్() పద్ధతికి కాల్ చేయండి ' మొత్తం() ”:
ముద్రణ ( ) ;రెండు సంఖ్యల మొత్తం ' 5 'మరియు' 10 ” ప్రదర్శించబడ్డాయి:
మేము జావాస్క్రిప్ట్ కోసం కారణాలు మరియు పరిష్కారాలను చర్చించాము ' ఫంక్షన్ లోపం నిర్వచించబడలేదు ” (కానీ అది నిర్వచించబడింది).
ముగింపు
దీనికి రెండు ప్రధాన కారణాలు ఉన్నాయి ' ఫంక్షన్ నిర్వచించబడలేదు ఫంక్షన్ను నిర్వచించిన తర్వాత లోపం సంభవిస్తుంది, ఉదాహరణకు' ఫంక్షన్ తప్పుగా వ్రాయబడింది లేదా తప్పు క్యాపిటలైజేషన్ ఉంది ' లేదా ' ఫంక్షన్ వేరే పరిధిలో నిర్వచించబడింది ”. ఈ కథనం JavaScript 'ఫంక్షన్ నిర్వచించబడలేదు లోపం' కోసం కారణాలు మరియు పరిష్కారాలను నిర్వచించింది (కానీ అది నిర్వచించబడింది).