Овај чланак ће описати ЈаваСцрипт „функција није дефинисана грешка“ док је дефинисана.
Грешка ЈаваСцрипт функције није дефинисана (АЛИ ЈЕ ДЕФИНИСАНА)
Понекад је функција дефинисана у коду, али се ипак можете суочити са следећом грешком:
Постоје два главна разлога зашто се горња грешка јавља након дефинисања функције, који су наведени у наставку:
- Функција је погрешно написана или има нетачно писање великих слова.
- Функција је дефинисана у другом обиму.
Разлог 1: Функција је погрешно написана или има нетачно писање великих слова
Понекад се функција позива нетачно написана. Пошто је ЈаваСцрипт језик који разликује велика и мала слова, ЈаваСцрипт тумач није могао да га пронађе и избаци „ функција није дефинисана ” грешка.
Пример
Прво ћемо дефинисати функцију „ сумм ” који враћа збир два броја “ а ' и ' б ”:
функција сум ( а, б ) {повратак а + б ;
}
Позовите функцију ' сумм ' као ' сум ” преношењем бројева “ 4 ' и ' 7 ”:
конзола. Пријава ( сум ( 4 , 7 ) )
Избациће грешку ' збир није дефинисан ”:
Како то поправити?
Да бисте исправили ову грешку, уверите се да је име функције исправно написано и да има исправна велика слова:
конзола. Пријава ( сумм ( 4 , 7 ) ) ;Сада, функција „ сумм ” је успешно позван и одштампа збир два броја “ 4 ' и ' 7 ”:
Разлог 2: Функција је дефинисана у другачијем обиму
У ЈаваСцрипт-у, свака функција има свој опсег, а функција може приступити само променљивим и функцијама које су дефинисане у оквиру њеног опсега. Ако је функција дефинисана у другом опсегу, можда неће бити доступна тренутном опсегу, што доводи до „ функција није дефинисана ” грешка.
Пример
Дефинишите функцију ' сума() “ са два параметра “ а ' и ' б “ унутар функције “ принт() ”:
функција принт ( ) {функција збир ( а, б ) {
конзола. Пријава ( а + б ) ;
}
}
Позовите функцију ' сума() ”:
сум ( 5 , 10 ) ;Даје грешку јер је сум() дефинисан унутар функције принт(), али јој се приступа изван опсега:
Како то поправити?
Уверите се да је функција дефинисана у одговарајућем опсегу и да јој се може приступити одакле се позива. На пример, ако је функција дефинисана унутар друге функције, можда неће бити доступна споља.
Позовите сум() унутар функције принт() након што је дефинишете:
функција принт ( ) {функција збир ( а, б ) {
конзола. Пријава ( а + б ) ;
}
сум ( 1 , 4 ) ;
}
Позовите метод принт():
принт ( ) ;Излаз
Или такође можете дефинисати функцију одвојено и позвати је у оквиру друге функције на следећи начин:
функција збир ( а, б ) {конзола. Пријава ( а + б ) ;
}
Овде ћемо позвати сум() унутар функције принт():
функција принт ( ) {сум ( 5 , 10 ) ;
}
Позовите метод принт() да бисте извршили функцију “ сума() ”:
принт ( ) ;Збир два броја ' 5 ' и ' 10 ” су приказани:
Разговарали смо о разлозима и решењима за ЈаваСцрипт “ грешка функције није дефинисана ” (али је дефинисано).
Закључак
Два су главна разлога зашто је „ функција није дефинисана ” се јавља грешка након дефинисања функције, као што је „ функција је погрешно написана или има нетачно писање великих слова ' или ' функција је дефинисана у другом обиму ”. Овај чланак је дефинисао разлоге и решења за ЈаваСцрипт „функција није дефинисана грешка“ (али је дефинисана).