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).