Chyba funkcie JavaScript nie je definovaná (ALE JE DEFINOVANÁ)

Chyba Funkcie Javascript Nie Je Definovana Ale Je Definovana



V jazyku JavaScript „ funkcia nie je definovaná ” je bežná chyba, ktorá sa vyskytuje, keď sa program pokúša použiť funkciu, ktorá nebola deklarovaná alebo definovaná v aktuálnom rozsahu. Toto chybové hlásenie môže byť mätúce, pretože niekedy je funkcia skutočne definovaná v kóde, ale stále vedie k chybe.

Tento článok popíše chybu JavaScriptu „funkcia nie je definovaná“, kým je definovaná.

Chyba funkcie JavaScript nie je definovaná (ALE JE DEFINOVANÁ)

Niekedy je funkcia definovaná v kóde, ale napriek tomu môžete čeliť nasledujúcej chybe:









Existujú dva hlavné dôvody, prečo sa po definovaní funkcie vyskytne vyššie uvedená chyba, ktoré sú uvedené nižšie:



Dôvod 1: Funkcia je nesprávne napísaná alebo má nesprávne veľké písmená

Niekedy sa funkcia volá s nesprávnym pravopisom. Keďže JavaScript je jazyk, v ktorom sa rozlišujú malé a veľké písmená, interpret JavaScriptu to nedokázal nájsť a vyhodiť „ funkcia nie je definovaná ' chyba.





Príklad

Najprv definujeme funkciu „ súčet “, ktorý vráti súčet dvoch čísel “ a “ a „ b “:

funkcia summ ( a, b ) {

vrátiť a + b ;

}

Zavolajte funkciu ' súčet “ ako “ súčet 'predávaním čísel' 4 “ a „ 7 “:



konzoly. log ( súčet ( 4 , 7 ) )

Vyhodí chybu “ suma nie je definovaná “:

Ako to opraviť?

Ak chcete túto chybu opraviť, uistite sa, že názov funkcie je napísaný správne a má správne veľké písmená:

konzoly. log ( súčet ( 4 , 7 ) ) ;

Teraz funkcia „ súčet “ bol úspešne zavolaný a vytlačí súčet dvoch čísel “ 4 “ a „ 7 “:

Dôvod 2: Funkcia je definovaná v inom rozsahu

V JavaScripte má každá funkcia svoj rozsah a funkcia môže pristupovať iba k premenným a funkciám, ktoré sú definované v rámci jej vlastného rozsahu. Ak je funkcia definovaná v inom rozsahu, nemusí byť dostupná pre aktuálny rozsah, čo vedie k „ funkcia nie je definovaná ' chyba.

Príklad

Definujte funkciu ' suma() “ s dvoma parametrami “ a “ a „ b 'vnútri funkcie' tlačiť () “:

funkcia tlače ( ) {

súčet funkcií ( a, b ) {

konzoly. log ( a + b ) ;

}

}

Zavolajte funkciu ' suma() “:

súčet ( 5 , 10 ) ;

Dáva chybu, pretože sum() je definovaný vo funkcii print(), ale je prístupný mimo rozsahu:

Ako to opraviť?

Uistite sa, že funkcia je definovaná v príslušnom rozsahu a je prístupná z miesta, kde sa volá. Napríklad, ak je funkcia definovaná v inej funkcii, nemusí byť prístupná zvonku.

Zavolajte sum() vo vnútri funkcie print() po jej definovaní:

funkcia tlače ( ) {

súčet funkcií ( a, b ) {

konzoly. log ( a + b ) ;

}

súčet ( 1 , 4 ) ;

}

Zavolajte metódu print():

vytlačiť ( ) ;

Výkon

Alebo môžete funkciu definovať aj samostatne a zavolať ju v rozsahu inej funkcie takto:

súčet funkcií ( a, b ) {

konzoly. log ( a + b ) ;

}

Tu zavoláme sum() vo vnútri funkcie print():

funkcia tlače ( ) {

súčet ( 5 , 10 ) ;

}

Zavolaním metódy print() spustíte funkciu “ suma() “:

vytlačiť ( ) ;

Súčet dvoch čísel' 5 “ a „ 10 “ sa zobrazili:

Diskutovali sme o dôvodoch a riešeniach pre JavaScript “ chyba nedefinovaná funkcia “ (ale je to definované).

Záver

Existujú dva hlavné dôvody, prečo „ funkcia nie je definovaná “ sa vyskytne chyba po definovaní funkcie, ako napríklad “ funkcia je nesprávne napísaná alebo má nesprávne veľké písmená ' alebo ' funkcia je definovaná v inom rozsahu “. Tento článok definoval dôvody a riešenia chyby JavaScript „funkcia nie je definovaná“ (ale je definovaná).