Den här artikeln kommer att beskriva JavaScriptet 'funktion ej definierat fel' medan det är definierat.
JavaScript-funktion ej definierad fel (MEN DEN ÄR DEFINIERAD)
Ibland är funktionen definierad i koden, men du kan fortfarande möta följande fel:
Det finns två huvudorsaker till att ovanstående fel uppstår efter att ha definierat funktionen, som listas nedan:
Orsak 1: Funktionen är felstavad eller har felaktig versal
Ibland anropas funktionen med felaktiga stavningar. Eftersom JavaScript är ett skiftlägeskänsligt språk kunde JavaScript-tolken inte hitta det och skicka ett ' funktion ej definierad ' fel.
Exempel
Först kommer vi att definiera en funktion ' summa ' som returnerar summan av två siffror ' a ' och ' b ”:
funktionssumma ( a, b ) {lämna tillbaka a + b ;
}
Ring funktionen ' summa ' som ' belopp ' genom att skicka siffror ' 4 ' och ' 7 ”:
trösta. logga ( belopp ( 4 , 7 ) )
Det kommer att ge ett fel ' summan är inte definierad ”:
Hur fixar man det?
För att åtgärda det här felet, se till att funktionsnamnet är rättstavat och har rätt versaler:
trösta. logga ( summa ( 4 , 7 ) ) ;Nu, funktionen ' summa ' har anropats och skriv ut summan av två siffror ' 4 ' och ' 7 ”:
Anledning 2: Funktionen definieras i ett annat omfång
I JavaScript har varje funktion sitt omfång, och en funktion kan bara komma åt variabler och funktioner som är definierade inom sitt eget omfång. Om en funktion är definierad i ett annat omfång kanske den inte är tillgänglig för det aktuella omfånget, vilket resulterar i en ' funktion ej definierad ' fel.
Exempel
Definiera en funktion ' belopp() ' med två parametrar ' a ' och ' b 'inuti funktionen' skriva ut() ”:
funktionsutskrift ( ) {funktion summa ( a, b ) {
trösta. logga ( a + b ) ;
}
}
Ring funktionen ' belopp() ”:
belopp ( 5 , 10 ) ;Det ger ett fel eftersom sum() är definierad i print()-funktionen men nås utanför omfånget:
Hur fixar man det?
Se till att funktionen är definierad i lämplig omfattning och kan nås där den anropas. Till exempel, om funktionen är definierad i en annan funktion, kanske den inte är tillgänglig utifrån.
Anrop sum() inuti print()-funktionen efter att ha definierat den:
funktionsutskrift ( ) {funktion summa ( a, b ) {
trösta. logga ( a + b ) ;
}
belopp ( 1 , 4 ) ;
}
Anropa metoden print():
skriva ut ( ) ;Produktion
Eller så kan du också definiera en funktion separat och anropa den i en annan funktions omfattning enligt följande:
funktion summa ( a, b ) {trösta. logga ( a + b ) ;
}
Här kommer vi att anropa summan() i print()-funktionen:
funktionsutskrift ( ) {belopp ( 5 , 10 ) ;
}
Anropa metoden print() för att utföra funktionen ' belopp() ”:
skriva ut ( ) ;Summan av två tal ' 5 ' och ' 10 ' har visats:
Vi har diskuterat orsakerna och lösningarna för JavaScript ' funktion ej definierad fel ” (men det är definierat).
Slutsats
Det finns två huvudorsaker till att ' funktion ej definierad ”-fel uppstår efter att ha definierat funktionen, till exempel ” funktionen är felstavad eller har felaktig versaler ' eller den ' funktion definieras i ett annat omfång ”. Den här artikeln definierade orsakerna och lösningarna för JavaScript 'funktion ej definierat fel' (men det är definierat).