Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    struttura in javascript

    Salve a tutti,
    devo iniziare un lavoro usando titanium di appcelerator, e quindi iniziare ad usare in modo più intensivo javascript.

    Cercando di scrivere del codice, adattandomi alla logica di titanium (che è ad "oggetti") mi sono sorti dei dubbi che non riesco a risolvere.

    VI posto subito un codice di esempio e poi vi spiego.

    codice:
    nana(parent){
        return parent.paperino({url:''});
    }
    
    bibi(parent){
        dati = {};
        return dati;
    }
    
    mainContainer(){
        
        this.pippo = new objectPippo();
        
        this.elab = function(data,config){
            
        }
        
        this.paperino = function(config){
            var cnt = new classeacaso();
            
            cnt.refresh(){
                rss.loadData({
                    success: function(e){ elab(e,config); }
                    error: function() { pippo.hide(); } 
                });
            }
            
            return cnt;
        }
        
        out = {}:
        out.push(nana(this));
        out.push(bibi(this));
    }
    Il codice è un po particolare, ma mi serve così perché ho la necessità di caricare dinamicamente, tramite un ciclo (ora non presente) delle funzioni tipo nana e bibi da dei file.
    Queste funzioni devono elaborarmi dei dati e restituirmeli. Queste funzioni devono poi avere a disposizione la funzione paperino, perché alcune di esse la sfrutteranno. Diciamo che paperino dovrebbe essere una classe base da estendere con la classe nana, come idea.
    Paperino ha bisogno di accedere ad alcune funzioni e variabili ed è li che ho il mio problema.
    Ad esempio ho bisogno di accedere alle funzioni pippo ed elab definite dentro a maincontainer. E allo stesso modo ho bisogno di accedere alla variabile config che teoricamente è una variabile locale solo per la funzione paperino. Ma l'accesso a queste funzioni e variabili cel'ho bisogno da una funzione function che non ha quindi più accesso tramite this a mainContainer() o paperino.
    Come faccio ad arrivarci? In php utilizzo la variabile a cui è stata assegnata la classe, recuperandola o passandomela, ma qui come devo fare? (quelle due funzioni vengono eseguite ad un'altra classe, la classe rss che non fa parte della classe mainContainer, ed è stata istanziata con una variabile globale, quindi quelle due function, quando vengono eseguite, come fanno a vedere delle variabili che sono dentro a paperino o maincontainer?)

    COme avrete forse notato sono moolto confuso sulla cosa... forse sto usando un approccio che non è da javascript per il problema...

    In caso qualcuno, se gli spiego cosa sto tentando di fare, riuscirebbe a darmi una mano a capire in quali modi javascript lo permette?

    grazie mille
    Mix

    Errare e' umano, ma per fare veramente casino serve la password di root.
    Coltiva Linux........Tanto windows si impianta da solo!!!!!
    PHP 4 Ever

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    5
    ..diciamo che non ho capito benissimo ciò che ti serve..
    in javascript si "simula" l'ereditarietà di una classe mediante la proprietà "prototype"..in questo modo puoi utilizzare le variabili con "this"..
    ..mi spiego forse meglio con un esempio..

    codice:
    function ricevuta(idCliente,importo){
     this.idCliente=idCliente;
     this.importo=importo;
    }
    
    ricevuta.prototype.mostraCliente=function(){
     alert(this.idCliente);
    }
    
    ricevuta.prototype.mostraImporto=function(){
     alert(this.importo);
    }
    
    var scontrino=new ricevuta(251,1500);
    scontrino.mostraCliente();
    scontrino.mostraImporto();
    ..praticamente 'ricevuta' è la "classe" padre..'mostraCliente' e 'mostraImporto' sono le "classi" che grazie all' "ereditarietà"(grazie al fatto di essere prototype della classe originaria 'ricevuta') possono utilizzare le variabili 'idCliente' e 'importo' como se fossero protected.

    Non so se è questo ciò che hai chiesto
    ..fammi sapere

  3. #3
    Ciao e grazie per la risposta!
    Si parzialmente era quella la richiesta e su quello sto cominciando ad afferrare di più il concetto.

    Ho però un'altro problema da cui non riesco a venir fuori.
    Modifico leggermente il codice che mi hai scritto
    codice:
    function ApplicationWindow() {
    	
    	this.sommatoria;
    	
    	function ricevuta(idCliente,importo){
    	   this.idCliente=idCliente;
    	   this.importo=importo;
    	}
    	
    	ricevuta.prototype.mostraCliente=function(){
    	   alert(this.idCliente);
    	}
    	
    	ricevuta.prototype.mostraImporto=function(){
    	   ApplicationWindow.sommatoria += this.importo;
    	   alert(this.importo);
    	}
    	
    	var scontrino=new ricevuta(251,1500);
    	scontrino.mostraCliente();
    	scontrino.mostraImporto();
    	
    	return this.sommatoria;
    }
    
    var windw = new ApplicationWindow();
    Il mio problema è la riga "ApplicationWindow.sommatoria += this.importo;"
    Come faccio da li dentro, che è una funziona della classe ricevuta, ad accedere alla classe parente ApplicationWindow?
    Ho provato ad usare la variabile globale windw, ma è undefined, immagino perchè esisterà quando la funzione avrà terminato la sua esecuzione (e io sono dentro alla funzione) oltre al fatto che teoricamente non dovrebbe contenere la funzione ma il valore che lei genera, giusto?
    Nel caso è possibile assegnare ad una variabile la funzione? se la assegno ad una variabile globale da dentro alla classe stessa (globale = this?

    Ringrazio ancora per l'aiuto!
    Mix

    Errare e' umano, ma per fare veramente casino serve la password di root.
    Coltiva Linux........Tanto windows si impianta da solo!!!!!
    PHP 4 Ever

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 © 2026 vBulletin Solutions, Inc. All rights reserved.