Chyba funkce JavaScript není definována (ALE JE DEFINOVÁNA)

Chyba Funkce Javascript Neni Definovana Ale Je Definovana



V JavaScriptu „ funkce není definována ” je běžná chyba, ke které dochází, když se program pokusí použít funkci, která nebyla deklarována nebo definována v aktuálním rozsahu. Tato chybová zpráva může být matoucí, protože někdy je funkce skutečně definována v kódu, ale stále vede k chybě.

Tento článek popíše chybu JavaScriptu „funkce není definována“, když je definována.

Chyba funkce JavaScript není definována (ALE JE DEFINOVÁNA)

Někdy je funkce definována v kódu, ale přesto můžete čelit následující chybě:









Existují dva hlavní důvody, proč k výše uvedené chybě dochází po definování funkce, které jsou uvedeny níže:



Důvod 1: Funkce je špatně napsaná nebo má nesprávná velká písmena

Někdy je funkce volána s nesprávným pravopisem. Protože JavaScript je jazyk citlivý na velká a malá písmena, interpret JavaScriptu to nemohl najít a vyvolat „ funkce není definována “chyba.





Příklad

Nejprve definujeme funkci „ součet “, který vrací součet dvou čísel” A ' a ' b “:

funkce summ ( a, b ) {

vrátit se A + b ;

}

Zavolejte funkci ' součet ' tak jako ' součet 'předáním čísel' 4 ' a ' 7 “:



řídicí panel. log ( součet ( 4 , 7 ) )

Vyhodí chybu ' součet není definován “:

Jak to opravit?

Chcete-li tuto chybu opravit, ujistěte se, že je název funkce napsán správně a má správná velká písmena:

řídicí panel. log ( součet ( 4 , 7 ) ) ;

Nyní funkce „ součet “ byl úspěšně volán a vytiskne součet dvou čísel “ 4 ' a ' 7 “:

Důvod 2: Funkce je definována v jiném rozsahu

V JavaScriptu má každá funkce svůj rozsah a funkce může přistupovat pouze k proměnným a funkcím, které jsou definovány v jejím vlastním rozsahu. Pokud je funkce definována v jiném rozsahu, nemusí být dostupná pro aktuální rozsah, což má za následek „ funkce není definována “chyba.

Příklad

Definujte funkci ' součet() “se dvěma parametry” A ' a ' b “ uvnitř funkce “ tisk() “:

funkční tisk ( ) {

funkční součet ( a, b ) {

řídicí panel. log ( A + b ) ;

}

}

Zavolejte funkci ' součet() “:

součet ( 5 , 10 ) ;

Dává chybu, protože sum() je definována uvnitř funkce print(), ale je přístupná mimo rozsah:

Jak to opravit?

Ujistěte se, že funkce je definována v příslušném rozsahu a je přístupná z místa, kde je volána. Pokud je například funkce definována uvnitř jiné funkce, nemusí být přístupná zvenčí.

Zavolejte sum() uvnitř funkce print() po jejím definování:

funkční tisk ( ) {

funkční součet ( a, b ) {

řídicí panel. log ( A + b ) ;

}

součet ( 1 , 4 ) ;

}

Zavolejte metodu print():

tisk ( ) ;

Výstup

Nebo můžete také definovat funkci samostatně a volat ji v rozsahu jiné funkce následovně:

funkční součet ( a, b ) {

řídicí panel. log ( A + b ) ;

}

Zde zavoláme sum() uvnitř funkce print():

funkční tisk ( ) {

součet ( 5 , 10 ) ;

}

Zavolejte metodu print() a spusťte funkci “ součet() “:

tisk ( ) ;

Součet dvou čísel' 5 ' a ' 10 “ se zobrazily:

Diskutovali jsme o důvodech a řešeních pro JavaScript “ funkce není definována chyba “ (ale je definováno).

Závěr

Existují dva hlavní důvody, proč „ funkce není definována “ dojde k chybě po definování funkce, např. funkce je špatně napsaná nebo má nesprávná velká písmena ' nebo ' funkce je definována v jiném rozsahu “. Tento článek definoval důvody a řešení chyby JavaScript „funkce není definována“ (ale je definována).