Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> JavaScript programmering >> Content

    Vad är Nedläggningar Bra för i JavaScript

    ? När en förslutning skapas i JavaScript , kan du referera lokala variabler i en funktion även efter att funktionen har avslutats , med de värden de hade vid slutet av funktionen . När du använder en funktion i en annan funktion , använd " eval " inuti en annan funktion eller definiera en variabel inuti en funktion utan " var , " du skapar en nedläggning . Många programmerare skapa nedläggningar utan att inse det genom att definiera en anonym funktion inom en funktion . Nedläggningar är användbart när du vill skicka variabler till händelsehanterare eller AJAX funktioner callback och att efterlikna privata variabler och metoder i JavaScript-objekt . Var försiktig när du skapar nedläggningar , men eftersom de kan orsaka minnesläckor i Microsoft Internet Explorer . Förstå Nedläggningar

    JavaScript och de flesta andra programmeringsspråk , de lokala variablerna i en funktion förstörs efter funktionen avslutas . Men , när du skapar en funktion i en annan funktion i JavaScript , de lokala variablerna i den yttre funktionen bevaras även efter det slutar eftersom variablerna kan refereras av den inre funktionen . Exemplet nedan innehåller en funktion " pristagare " som skapar en nedläggning genom en anonym funktion , som den returnerar . Vi kallar det anonym funktion direkt från utsidan utan att ens gå igenom den överordnade funktionen :

    funktion pristagare ( namn ) {var vinnaren = " Du vinner priset , " + namn , var tillkännage = function ( ) { alert (vinnare ) ;} ; if ( Math.floor ( Math.random ( ) * 11 ) == 7 ) återvänder meddela , returnera null ; }

    if ( var Sayit = pristagare ( " Steve " ) ) Sayit ( ) ; Addera skicka parametrar till händelsehanterare

    En användning av nedläggningar är att variabler som till händelsehanterare . Betrakta följande exempel där en nedläggning är skapad av en anonym funktion definierad i " setHandler . " Den anonyma funktionen refererar till en parameter för " setHandler . " Vid den punkt händelsen bränder , även om " setHandler " är klar , är värdena på dess variabler, inklusive dess parametrar , vid funktionen slutsats bevaras för anonym funktion . En separat förslutning skapas för varje iteration i slingan .

    Funktion setHandler ( dörr , pris ) { door.addEventListener ( " click" , function ( ) { alert ( " Priset för dörren " + dörr + " är " + pris) ; } , false ) ; }

    window.onload = function ( ) { for (var i = 1 ; i < = 3 ; i + + ) { setHandler ( document.getElementById ( " door " + i) , pris [ i] ) ; } }
    skicka parametrar till AJAX callback-funktionerna

    liknande till det tidigare exemplet , vi kan skicka parametrar till AJAX callback-funktionerna med nedläggningar . Om du gör ett AJAX samtal under vilket begäran variabeln är global , har du eliminerat chansen att skicka en parameter till callback-funktionen eftersom en enda global förfrågan skapas . Genom att göra förfrågan variabeln lokal , kan du skapa en stängning och ge tillgång callback-funktion till begäran - specifika uppgifter . I exemplet nedan , skapar vi en stängning genom att definiera callback-funktion som använder en variabel lokal till sin överordnade funktion . En separat återuppringning skapas för var och en av de 10 " makeRequest " samtal

    funktionsprocessen () { för . ( Var i = 0 ; i < 10 , i + +) { makeRequest ( i) ;}

    funktion makeRequest ( vilken ) {var begäran, var useThis = lookup ( vilka ) , om ( window.XMLHttpRequest ) { begäran = new XMLHttpRequest ( ) ;} else if ( window.ActiveXObject ) { begäran = ny ActiveXObject ( " Microisoft.XMLHTTP " ) ;} request.onreadystatechange = function ( ) { parse ( useThis ) ;} request.open ( " GET " , url ) , request.send ( ) ;}
    Privat variabler och metoder i JavaScript

    JavaScript , alla medlemmar av ett objekt är offentliga , till skillnad från vissa andra objektorienterade språk som tillåter privata variabler och metoder . Nedläggningar tillåter dig att emulera privata metoder och variabler i JavaScript . I följande exempel objektet " hemligheter " skapas och exekveras vid definition . När den körs , innehåller det ett anonymt objekt med två metoder : " show " och " super ", som tar en parameter . Både variabeln " hemligkod " och funktionen " superSecret " kan endast nås genom de två metoderna i " hemligheter " objektet . I själva verket är de privata medlemmar i

    var- hemligheter = function ( ) {var hemligkod = ( ( ( 1 + Math.random ( ) ) * 0x100000 )

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur du ändrar text till versaler i JavaScript
    ·Hur man skapar Java Script för Looping bilder
    ·Hur man reparerar en Tillfälligt stackutrymme Fel i Ja…
    ·Hur man skapar en blinkande ram på DIV
    ·Hur får man gratis Cursor Effekter
    ·Hur man installerar Java Script på en PC
    ·Hur konvertera en vanlig nod till en jQuery Node
    ·Hur man gör en Google Map Overlay
    ·Hur får man en Remote webbsida med JavaScript
    ·Hur du använder ShrinkSafe med NetBeans
    Utvalda artiklarna
    ·Implementera Positional Index Använda Python
    ·Vad är en Mirage Driver
    ·Hur konvertera en array till en sträng i Perl
    ·Hur Jämför Alfabetiskt - Beställda Strängar i Java
    ·Hur man använder ett fall uttalande i ASP.Net
    ·Hur du hittar AppConfig.pm
    ·Hur man avgör Algoritmer
    ·Hur man använder en timer i Visual Basic
    ·Hur läsa text från SWF i Java
    ·Hur man skapar VBS loginskript
    Copyright © Dator Kunskap http://www.dator.xyz