| Home  | Casa  | Hardware  | Networking  | Programmazione  | Software  | Domanda  | Sistemi  |   
Programmazione  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Java Programming

  • Programmazione Javascript

  • PHP /MySQL Programmazione

  • Perl Programming

  • Python Programming

  • rubino Programmazione

  • Nozioni di base di Visual Programming
  •  
    Conoscenza Informatica >> Programmazione >> Programmazione Javascript >> Content
    Quali sono chiusure Per in JavaScript ?
    Quando una chiusura viene creato in JavaScript, è possibile fare riferimento a variabili locali di una funzione , anche dopo la funzione si è concluso, con i valori che avevano al termine della funzione . Ogni volta che si utilizza una funzione all'interno di un'altra funzione , utilizzare " eval " all'interno di un'altra funzione o definire una variabile all'interno di una funzione senza "var ", si crea una chiusura . Molti programmatori di creare chiusure senza rendersene conto , definendo una funzione anonima all'interno di una funzione . Le chiusure sono utili quando si desidera passare variabili per i gestori di eventi o funzioni di callback AJAX e di emulare le variabili e metodi di oggetti JavaScript privati ​​. Usare cautela quando si creano chiusure , però, perché possono causare perdite di memoria in Microsoft Internet Explorer . Comprendere Chiusure

    Javascript e molti altri linguaggi di programmazione , le variabili locali di una funzione vengono distrutte al termine della funzione. Tuttavia, quando si crea una funzione all'interno di un'altra funzione in JavaScript , le variabili locali della funzione esterna si conservano anche dopo che termina perché le variabili possono essere referenziate dalla funzione interna . L'esempio seguente contiene una funzione di " vincitore " che crea una chiusura attraverso una funzione anonima , che restituisce . Chiediamo che la funzione anonima direttamente dall'esterno senza nemmeno passare attraverso la funzione di genitore :

    funzione vincitore ( nome ) {var vincitore = " Hai vinto il premio , " + nome ; var annunciare = function ( ) { alert (vincitore );} if ( Math.floor ( Math.random ( ) * 11) == 7 ) return annunciare ; restituire null ; }

    if ( var = sayit Nobel ( " Steve " ) ) sayit ();
    passaggio di parametri ai gestori di eventi

    Un uso di chiusure è quello di rendere disponibili le variabili a gestori di eventi . Si consideri il seguente esempio in cui la chiusura è creato da una funzione anonima definita nel " SetHandler . " I riferimenti funzione anonima di un parametro di " SetHandler . " Al punto viene generato l'evento , anche se " SetHandler " ha finito di , i valori delle sue variabili , tra cui i suoi parametri , a conclusione della funzione vengono conservate per la funzione anonima . Una chiusura separato viene creato per ogni iterazione del ciclo.

    Funzione SetHandler ( porta , premio) { door.addEventListener ( "click" , function () {alert (" Premio per la porta" + porta + "è" + premio );} , false) ; }

    window.onload = function () { for (var i = 1; i < = 3; i + + ) { SetHandler ( document.getElementById ( "porta" + i) , premio [ i] );} }
    passaggio di parametri a funzioni di callback AJAX

    simili all'esempio precedente , siamo in grado di passare parametri a funzioni di callback AJAX con chiusure . Se si effettua una chiamata AJAX in cui la variabile richiesta è globale , hai eliminato la possibilità di passare un parametro alla funzione di callback , perché una sola richiesta globale è creato . Presentando la richiesta variabile locale , è possibile creare una chiusura e di dare la funzione di callback accesso ai dati di richiesta- specifici. Nel seguente esempio , creiamo una chiusura definendo la funzione di callback che utilizza una variabile locale alla sua funzione principale. Un callback viene creata per ciascuna delle chiamate 10 " makeRequest "
    processo

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

    funzione makeRequest (che ) {var richiesta ; var usethis = lookup (che ), se ( window.XMLHttpRequest ) { richiesta = new XMLHttpRequest (); } else if ( window.ActiveXObject ) { richiesta = new ActiveXObject ( " Microisoft.XMLHTTP ");} request.onreadystatechange = function () { parse ( usethis );} request.open ( " GET " , url ) ; request.send (); }
    privato variabili e Metodi JavaScript

    JavaScript , tutti i membri di un oggetto sono pubbliche , a differenza di altri linguaggi orientati agli oggetti che permettono di variabili e metodi privati ​​. Chiusure consentono di emulare i metodi privati ​​e le variabili in JavaScript . Nell'esempio seguente , l'oggetto " segreti " è creato ed eseguito una definizione . Quando viene eseguito, esso contiene un oggetto anonimo con due metodi : "show" e "super ", che prende un parametro . Sia la variabile " secretCode " e la funzione " supersegreta " sono accessibili solo attraverso i due metodi nell'oggetto " segreti " . In effetti, essi sono membri privati ​​di

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

    Previous :

    next :
      Articoli Correlati
    ·Come modificare l' azione del form in JavaScript Select…
    ·Come fare un timer in Game Maker 
    ·Come aggiungere il pulsante Condividi con Facebook per …
    ·Come impedire JavaScript dalla visualizzazione in Fireb…
    ·Come controllare un sito web per un Bug JavaScript 
    ·JavaScript target iFrame Documento Tutorial 
    ·Come modificare i CSS con JavaScript 
    ·Come cambiare il font Colori Con Javascript 
    ·Come creare i colori della vernice 
    ·Come ruotare Links in Javascript 
      Articoli in evidenza
    ·Prototipo di funzione in Python 
    ·Schema di programmazione Aiuto 
    ·Come creare moduli DNN Sicuro 
    ·Chi è stato il primo computer Programmatore ? 
    ·Quali sono chiusure Per in JavaScript ? 
    ·Come inviare una email con Powershell 
    ·Come imparare VBA per Access 
    ·Come compilare un programma C + + in Dev - C 
    ·Come fare un programma di conversione temperatura in QB…
    ·Come disabilitare lo scorrimento in Google Maps API V3 
    Copyright © Conoscenza Informatica http://it.wingwit.com