Грешка ЈаваСцрипт функције није дефинисана (АЛИ ЈЕ ДЕФИНИСАНА)

Greska Javascript Funkcije Nije Definisana Ali Je Definisana



У ЈаваСцрипт-у, „ функција није дефинисана ” је уобичајена грешка која се јавља када програм покуша да користи функцију која није декларисана или дефинисана у тренутном опсегу. Ова порука о грешци може бити збуњујућа јер је понекад функција заправо дефинисана у коду, али и даље доводи до грешке.

Овај чланак ће описати ЈаваСцрипт „функција није дефинисана грешка“ док је дефинисана.

Грешка ЈаваСцрипт функције није дефинисана (АЛИ ЈЕ ДЕФИНИСАНА)

Понекад је функција дефинисана у коду, али се ипак можете суочити са следећом грешком:









Постоје два главна разлога зашто се горња грешка јавља након дефинисања функције, који су наведени у наставку:



Разлог 1: Функција је погрешно написана или има нетачно писање великих слова

Понекад се функција позива нетачно написана. Пошто је ЈаваСцрипт језик који разликује велика и мала слова, ЈаваСцрипт тумач није могао да га пронађе и избаци „ функција није дефинисана ” грешка.





Пример

Прво ћемо дефинисати функцију „ сумм ” који враћа збир два броја “ а ' и ' б ”:

функција сум ( а, б ) {

повратак а + б ;

}

Позовите функцију ' сумм ' као ' сум ” преношењем бројева “ 4 ' и ' 7 ”:



конзола. Пријава ( сум ( 4 , 7 ) )

Избациће грешку ' збир није дефинисан ”:

Како то поправити?

Да бисте исправили ову грешку, уверите се да је име функције исправно написано и да има исправна велика слова:

конзола. Пријава ( сумм ( 4 , 7 ) ) ;

Сада, функција „ сумм ” је успешно позван и одштампа збир два броја “ 4 ' и ' 7 ”:

Разлог 2: Функција је дефинисана у другачијем обиму

У ЈаваСцрипт-у, свака функција има свој опсег, а функција може приступити само променљивим и функцијама које су дефинисане у оквиру њеног опсега. Ако је функција дефинисана у другом опсегу, можда неће бити доступна тренутном опсегу, што доводи до „ функција није дефинисана ” грешка.

Пример

Дефинишите функцију ' сума() “ са два параметра “ а ' и ' б “ унутар функције “ принт() ”:

функција принт ( ) {

функција збир ( а, б ) {

конзола. Пријава ( а + б ) ;

}

}

Позовите функцију ' сума() ”:

сум ( 5 , 10 ) ;

Даје грешку јер је сум() дефинисан унутар функције принт(), али јој се приступа изван опсега:

Како то поправити?

Уверите се да је функција дефинисана у одговарајућем опсегу и да јој се може приступити одакле се позива. На пример, ако је функција дефинисана унутар друге функције, можда неће бити доступна споља.

Позовите сум() унутар функције принт() након што је дефинишете:

функција принт ( ) {

функција збир ( а, б ) {

конзола. Пријава ( а + б ) ;

}

сум ( 1 , 4 ) ;

}

Позовите метод принт():

принт ( ) ;

Излаз

Или такође можете дефинисати функцију одвојено и позвати је у оквиру друге функције на следећи начин:

функција збир ( а, б ) {

конзола. Пријава ( а + б ) ;

}

Овде ћемо позвати сум() унутар функције принт():

функција принт ( ) {

сум ( 5 , 10 ) ;

}

Позовите метод принт() да бисте извршили функцију “ сума() ”:

принт ( ) ;

Збир два броја ' 5 ' и ' 10 ” су приказани:

Разговарали смо о разлозима и решењима за ЈаваСцрипт “ грешка функције није дефинисана ” (али је дефинисано).

Закључак

Два су главна разлога зашто је „ функција није дефинисана ” се јавља грешка након дефинисања функције, као што је „ функција је погрешно написана или има нетачно писање великих слова ' или ' функција је дефинисана у другом обиму ”. Овај чланак је дефинисао разлоге и решења за ЈаваСцрипт „функција није дефинисана грешка“ (али је дефинисана).