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:
- Funkcia je nesprávne napísaná alebo má nesprávne veľké písmená.
- Funkcia je definovaná v inom rozsahu.
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á).