„JavaScript“ funkcijos neapibrėžta klaida (BET TAI NUSTATYTA)

Javascript Funkcijos Neapibrezta Klaida Bet Tai Nustatyta



„JavaScript“ funkcija neapibrėžta “ yra dažna klaida, atsirandanti, kai programa bando naudoti funkciją, kuri nebuvo deklaruota arba apibrėžta dabartinėje srityje. Šis klaidos pranešimas gali būti klaidinantis, nes kartais funkcija iš tikrųjų yra apibrėžta kode, tačiau ji vis tiek sukelia klaidą.

Šiame straipsnyje bus aprašyta „JavaScript“ klaida „funkcija nenustatyta“, kol ji yra apibrėžta.

„JavaScript“ funkcijos neapibrėžta klaida (BET TAI NUSTATYTA)

Kartais funkcija yra apibrėžta kode, tačiau vis tiek galite susidurti su tokia klaida:









Yra dvi pagrindinės priežastys, kodėl anksčiau nurodyta klaida įvyksta apibrėžus funkciją, kurios išvardytos toliau:



1 priežastis: Funkcija neteisingai parašyta arba joje neteisingai rašoma didžiosiomis raidėmis

Kartais funkcija iškviečiama neteisingai parašyta. Kadangi „JavaScript“ yra didžiosios ir mažosios raidės, „JavaScript“ vertėjas negalėjo to rasti ir išmesti „ funkcija neapibrėžta “ klaida.





Pavyzdys

Pirmiausia apibrėžsime funkciją ' suma “, kuris grąžina dviejų skaičių sumą “ a “ ir „ b “:

funkcijos suma ( a, b ) {

grąžinti a + b ;

}

Iškvieskite funkciją ' suma “ kaip „ suma 'perleidžiant skaičius' 4 “ ir „ 7 “:



konsolė. žurnalas ( suma ( 4 , 7 ) )

Tai išmes klaidą ' suma neapibrėžta “:

Kaip tai pataisyti?

Norėdami ištaisyti šią klaidą, įsitikinkite, kad funkcijos pavadinimas parašytas tinkamai ir jame yra teisingos didžiosios raidės:

konsolė. žurnalas ( suma ( 4 , 7 ) ) ;

Dabar funkcija ' suma “ buvo sėkmingai iškviestas ir išspausdinkite dviejų skaičių sumą “ 4 “ ir „ 7 “:

2 priežastis: funkcija apibrėžiama skirtingai

„JavaScript“ programoje kiekviena funkcija turi savo taikymo sritį, o funkcija gali pasiekti tik tuos kintamuosius ir funkcijas, kurie yra apibrėžti jos taikymo srityje. Jei funkcija apibrėžta kitoje srityje, ji gali būti nepasiekiama dabartinei apimčiai, todėl „ funkcija neapibrėžta “ klaida.

Pavyzdys

Apibrėžkite funkciją ' suma() 'su dviem parametrais' a “ ir „ b 'funkcijos viduje' spausdinti () “:

funkcinis spausdinimas ( ) {

funkcijos suma ( a, b ) {

konsolė. žurnalas ( a + b ) ;

}

}

Iškvieskite funkciją ' suma() “:

suma ( 5 , 10 ) ;

Tai suteikia klaidą, nes suma () yra apibrėžta print () funkcijos viduje, bet pasiekiama už taikymo srities ribų:

Kaip tai pataisyti?

Įsitikinkite, kad funkcija apibrėžta atitinkamoje srityje ir ją galima pasiekti iš ten, kur ji iškviečiama. Pavyzdžiui, jei funkcija apibrėžta kitoje funkcijoje, ji gali būti nepasiekiama iš išorės.

Apibrėžę funkciją print() iškvieskite sum():

funkcinis spausdinimas ( ) {

funkcijos suma ( a, b ) {

konsolė. žurnalas ( a + b ) ;

}

suma ( 1 , 4 ) ;

}

Iškvieskite print() metodą:

spausdinti ( ) ;

Išvestis

Arba taip pat galite apibrėžti funkciją atskirai ir iškviesti ją kitos funkcijos srityje taip:

funkcijos suma ( a, b ) {

konsolė. žurnalas ( a + b ) ;

}

Čia mes iškviesime sum () funkciją print () :

funkcinis spausdinimas ( ) {

suma ( 5 , 10 ) ;

}

Iškvieskite print() metodą, kad paleistumėte funkciją ' suma() “:

spausdinti ( ) ;

Dviejų skaičių suma “ 5 “ ir „ 10 “ buvo rodomi:

Mes aptarėme „JavaScript“ priežastis ir sprendimus funkcija neapibrėžta klaida “ (bet tai yra apibrėžta).

Išvada

Yra dvi pagrindinės priežastys, kodėl „ funkcija neapibrėžta “ klaida įvyksta apibrėžus funkciją, pvz. Funkcija neteisingai parašyta arba joje neteisingai rašomos didžiosios raidės ' arba ' funkcija apibrėžta kitoje srityje “. Šiame straipsnyje apibrėžiamos „JavaScript“ funkcijos neapibrėžtos klaidos priežastys ir sprendimai (bet ji apibrėžta).