JavaScript är ett skriptspråk för webben används för att utföra beräkningar eller styra layout av webbsidor medan inbäddad i HTML- script . JavaScript makt och flexibilitet kommer från det faktum att JavaScript är ett objektorienterat språk , vilket innebär att den innehåller en del funktioner av andra språk . På grund av detta , många typer av data i JavaScript är objekt, inklusive funktioner . Funktioner beter som objekt gör att programmerare att göra intressanta saker med dem , som bo dem i andra funktioner . Funktioner och returvärden
uppgifter som brukar ta en lista med argument , köra lite kod baserad på dessa argument , och antingen utföra en åtgärd eller returnera ett värde . När en funktion returnerar ett värde , betyder det att funktionen i en mening matar ut ett värde , som en programmerare kan tilldela en variabel eller användning i en annan beräkning . Det returnerade värdet kan vara en skalär datatyp ( t.ex. ett heltal) , eller ett objekt. Till exempel tar följande funktion ett nummer och returnerar antalet multiplicerat med tre :
funktion trippel ( x ) katalog
{
retur x * 3 ;
}
kapslade funktioner
Inuti en funktion , kan programmeraren definiera ytterligare en funktion för att utföra en uppgift . Definitionen processen är exakt samma , men användningen av funktionen skiljer . När en programmerare deklarerar en funktion i global omfattning , kan hon använda den funktionen under hela programmet . När en programmerare deklarerar en funktion i en annan funktion , dock är det enda stället där hon kan använda den funktionen inuti funktionen hon förklarade det i. Följande exempel illustrerar detta :
funktion trippel ( x ) katalog
{
funktion addThree ( y ) {
retur y + y + y;
}
retur addThree ( x ) , //return returnerar resultatet av " addThree "
}
funktion dubbel ( x ) katalog
{
addThree ( x ) , //olagligt , addThree kan bara anropas inifrån "triple "-funktion
Variabler och kapslade funktioner
anledningen funktioner kan inte ringa någon funktion deklareras inuti andra funktioner är att den interna funktionen är inte i utanför funktioner " omfattning . " Den " addThree "-funktionen existerar i den omfattning av " trippel "-funktion. "dubbel " -funktionen är utanför trippel tillämpningsområde , och kan inte komma åt dess inre delar . Men " addThree " är inne " triple s " räckvidd , och därför kan komma åt de interna delarna av " triple . " Detta innebär att variabler deklareras i " trippel " är rättvist att använda för " addThree , " och funktionen kan se ut så här :
funktion trippel ( x ) katalog
{
funktionen addThree ( ) {
retur x + x + x ;
}
avkastning addThree Addera Återvänder Andra funktioner
Eftersom funktionerna är objekt , kan en funktion returnera en funktion snarare än data. Detta innebär att vissa funktioner kan ta data för att ge till andra , kapslade funktioner , och returnera dessa funktioner . Sedan kan programmeraren ringa intern funktion från ut ur externa funktioner räckvidd. Följande exempel beskriver hur detta fungerar :
funktion ut ( x ) {
funktion add ( y ) katalog
retur x + y;
}
retur insidan ,
}
x = ut ( 3 ) , //x nu innehar funktionen objektet " add ( y ) " , som har ett x-värde av 3
y = x ( 2 ) , //x = " add ( 2 ) " som är 3 + 2 , så y = 5 Addera