Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    21

    metodo che perde lo scopo

    Ciao a tutti,
    ho un problema di scopo nel definire una classe.

    Codice PHP:
    function Folder (o) {

        
    // proprietà url
        
    this.url '';
            
        
    // metodo load: carica del contenuto AJAX
        
    this.load = function(o) {
            
    ajax_connect ({target_idthis.update_div
                           
    urlo.url,
                           
    'loader_icon'false,
                           
    callbacko.callback,
                           
    callback_paramso.callback_params
                          
    });
            
    // setto la proprieta url all'oggetto
            
    this.url o.url;              
                         
        }    
        
        
    // metodo refresh: ricarica l'url corrente 
        
    this.refresh = function() {
            
    this.load(this.url);
        }
        
    }

    var 
    folder_profile = new Folder
    Il problema è che il metodo refresh, chiama un altro metodo passandogli una proprietà della classe come parametro.

    Come c'è da aspettarsi chiamando il metodo

    Codice PHP:
    folder_profile.refresh() 
    perdo lo scopo e non funziona...come uscirne?

    ho provato usando il metodo call:



    Codice PHP:
        this.refresh = function() {
            
    this.load.call(thisthis.url);

    ma non funziona.

    Penso che il tutto si possa risolvere anche con una closure ma non so come costruirla e ho paura di creare memory leaks.

    Mi potete aiutare??

    grazie mille in anticipo,
    Augusto

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    due domande:
    1) che cosa rappresenta la variabile o (che oggetto è) ?
    2) perche il costruttore è chiamato senza argomento visto che ne prevedi uno?
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    21
    Originariamente inviato da fcaldera
    due domande:
    1) che cosa rappresenta la variabile o (che oggetto è) ?
    2) perche il costruttore è chiamato senza argomento visto che ne prevedi uno?
    2) dunque nell'esempio fornito al costruttore non passo un oggetto...ma solo nell'esempio che è più semplice della classe originale anche se ne rispecchia la struttura.

    1) l'oggetto è un pannello che si può minimizzare e che fa parte dell'interfaccia grafica di un'applicazione che sto costruendo.

    Nel mio post poi ero di fretta e non ho spiegato bene.
    Se chiamo normalmente:

    folder_profile.refresh()

    il metodo funziona è se lo chiamo in un SetInterval o come callback di un'altra funzione che il metodo perde lo scopo dei "this" che contiene al suo interno.

    La domanda in generale è:

    un metodo di una classe può chiamare un altro metodo dello stessa classe ? come evitare che perda lo scopo quando viene eseguito in differita?

    E che differenza c'è tra usare "call" per far mantenere lo scopo e creare una closure?
    Come si userebbe ".call" nella mia classe?

    Si può stare tranquilli creando delle closure che non generino memory leaks?


    grazie mille!

    Augusto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.