| Hjem | Hardware | Netværk | Programmering | software | Fejlfinding | systemer | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringssprog
  • Delphi programmering
  • Java programmering
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl programmering
  • Python Programming
  • Ruby Programming
  • Visual Basics Programmering
  •  
    Computer Viden >> Programmering >> JavaScript Programmering >> Content
    Hvad Er Lukninger God til i JavaScript
    ? Når en lukning er skabt i JavaScript , kan du referere til lokale variable i en funktion , selv efter at funktionen er slut , med de værdier , de havde ved afslutningen af funktionen. Når du bruger en funktion inde i en anden funktion, bruges " eval " inde i en anden funktion eller definere en variabel inde i en funktion uden "var ," du oprette en lukning. Mange programmører at skabe lukninger uden at vide det ved at definere en anonym funktion i en funktion. Lukninger er nyttige, når du ønsker at videregive variable til hændelseshandlere eller AJAX tilbagekald funktioner og til at efterligne private variabler og metoder i JavaScript objekter. Vær forsigtig , når du opretter lukninger , men fordi de kan forårsage memory leaks i Microsoft Internet Explorer. Forståelse Lukninger

    JavaScript og de fleste andre programmeringssprog , er de lokale variabler i en funktion ødelagt efter funktionen slutter. Men når du opretter en funktion inde i en anden funktion i JavaScript , er lokale variable af den ydre funktion bevares , selv efter den afsluttes , fordi de variabler kunne refereres af den indre funktion. Nedenstående eksempel indeholder en funktion " prisvinder ", der skaber en lukning via en anonym funktion, som den vender tilbage . Vi kalder at anonym funktion direkte udefra uden selv at gå gennem den overordnede funktion : Hej

    funktion prisvinder (navn) {var vinderen = "Du vinde præmien , " + navn var annoncere = function () { alert ( vinder) ;} , hvis ( Math.floor ( Math.random () * 11) == 7) tilbage annoncere , returnere null ;}

    hvis (var sayit = prisvinder ( " Steve " ) ) sayit ();
    Passing Parametre til hændelseshandlere

    En anvendelse af lukninger er at gøre variabler til rådighed for hændelseshandlere . Overvej følgende eksempel , hvor en lukning er skabt af en anonym funktion defineret i " setHandler . " De anonyme funktion referencer en parameter med " setHandler ". På det tidspunkt for begivenheden brande , selvom " setHandler " er færdig er værdierne af sine variabler, herunder dens parametre , ved funktionen konklusion bevares for den anonyme funktion. En separat lukning er skabt for hver iteration i sløjfen .

    Funktion setHandler (dør , præmie ) { door.addEventListener ( "klik" , function ( ) { alert (" prisen for døren " + dør + "er" + præmie );} , falske );}

    window.onload = function () { for (var i = 1 ; i < = 3 ; i + +) { setHandler ( document.getElementById ( "dør " + i) , præmie [i] );}}
    Passing Parametre til AJAX callback funktioner

    Svarende til det foregående eksempel vi kan overføre parametre til AJAX callback funktioner med lukninger. Hvis du laver en AJAX opkald , hvor anmodningen variabel er global , har du fjernet muligheden for at passere en parameter til funktionen tilbagekald , fordi en enkelt global anmodning er oprettet. Ved at gøre anmodningen variable lokalt, kan du oprette en lukning og give callback funktion adgang til request- specifikke data. I eksemplet nedenfor opretter vi en lukning ved at definere funktionen tilbagekald , der bruger en variabel lokalt til moderselskabet funktion. En separat tilbagekald er skabt for hver af de 10 " makeRequest " opkald

    funktion processen ( ) { for . (Var i = 0; i < 10; i + +) { makeRequest ( i) ;}

    funktion makeRequest (som ) {var anmodning var useThis = opslag (som ), og hvis ( window.XMLHttpRequest ) { request = ny XMLHttpRequest ( );} else if ( window.ActiveXObject ) { request = nye ActiveX ( " Microisoft.XMLHTTP " );} request.onreadystatechange = function () { parse ( useThis );} request.open ( " GET ", url ), request.send ( );}
    Private variabler og metoder i JavaScript

    JavaScript alle medlemmer af et objekt er offentlige, i modsætning til nogle andre objektorienterede sprog, der giver mulighed for private variabler og metoder. Lukninger kan du emulere private metoder og variabler i JavaScript. I det følgende eksempel , objektet " hemmeligheder " oprettes og eksekveres ved definition . Når henrettet, den indeholder en anonym genstand med to metoder : "show " og " super ", som tager et parameter. Både variablen " secretCode ", og funktionen " superSecret " kan kun tilgås gennem de to metoder i " hemmeligheder " objekt . I realiteten er de private medlemmer af

    VAR hemmeligheder = function () {var secretCode = (( (1 + Math.random () ) * 0x100000 )

    Forrige :

    næste :
      Relaterede artikler
    ·Sådan Timeout i JavaScript 
    ·Javascript og Regular Expressions til postnumre 
    ·Kombination af JavaScript Hotkeys 
    ·Liste over jQuery attributter 
    ·Hvad betyder JavaScript Do 
    ·Sådan oprettes en Vista Sidebar Gadget 
    ·Hvordan til at rulle ned i JavaScript 
    ·Sådan ændres størrelse & Type af en Pushpin i en Vir…
    ·Hvad er Adobe ExtendScript Toolkit 
    ·Sådan Konverter Javascript UTC Dato for Eastern Time 
      Anbefalede Artikler
    ·Sådan Send en PHP fil i e-mail 
    ·Sådan fjerner flere Delstrenge fra en streng 
    ·Sådan Begrænse en tekstboks til Numbers Kun i Visual …
    ·Sådan ændres Tabel baggrundsfarver med Javascript 
    ·Sådan Parse Dele af en String i VB 
    ·Sådan Sortere kolonner i DataGrid 
    ·Hvad er en SQL- objekt 
    ·Sådan kører en SQL Script Command 
    ·Sådan Læs USB Tastaturinput på Linux 
    ·Format beregnere i Java 
    Copyright © Computer Viden http://www.computerdk.com