Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Ceras
    Registrato dal
    Oct 2009
    Messaggi
    141

    Ottenere il nome della variabile-istanza di una "classe"

    Ciao a tutti, la domanda è un po' atipica, ora vi spiego meglio il contesto.

    Ho necessità di fare una classe Menu, che ha un attributo e due metodi:

    - attributo items[]: array di stringhe degli elementi del menù
    - metodo clickItem(indexItem): verrà eseguito quando sarà cliccato l'item con indice "indexItem"
    - metodo show(): crea all'interno di un div predefinito il menù con gli items, tale menù sarà composto da una lista di link, ognuno dei quali avrà come href "javascript:nomeOggetto.clickItem(indice)"

    Il dilemma è il seguente. Se io istanzio un nuovo oggetto di tipo menù:

    codice:
    myMenu = new Menu({"home","chi siamo","dove siamo"});
    Poi mi visualizzo il menù con show()
    codice:
    myMenu.show();
    Vorrei avere questo codice:

    Codice PHP:
    <div id="divMenu">
        <
    a href="javascript:myMenu.click(0)>home</a>
        <a href="
    javascript:myMenu.click(1)>chi siamo</a>
        <
    a href="javascript:myMenu.click(2)>dove siamo</a>
    </div> 
    Cioè, per stampare la stringa "myMenu" avrei bisogno di ottenere, all'interno del metodo show(), il nome della variabile che ho istanziato (appunto myMenu).
    L'unica idea che mi viene in mente è di aggiungere come parametro del costruttore la stringa che mi rappresenta il nome dell'istanza:

    myMenu = new Menu("myMenu", {"home","chi siamo","dove siamo"})

    Esiste un modo per avere "direttamente" il nome della variabile istanza di un oggetto?

  2. #2
    Utente di HTML.it L'avatar di Ceras
    Registrato dal
    Oct 2009
    Messaggi
    141
    up...

    Mostro il problema in un modo più esplicito. Ho questa classe:


    codice:
    <script>
    Classe = function() {
        this.stampaNomeIstanza = function() {
            alert("il nome dell\'istanza è" + <metodo per il nome istanza>);
        }
    }
    </script>
    e con queste chiamate vorrei ottenere i risultati come da commento:
    codice:
    <script>
    pinco = new Classe();
    pallino = new Classe();
    
    pinco.stampaNomeIstanza(); // alert("il nome dell'istanza è pinco");
    pallino.stampaNomeIstanza(); // alert("il nome dell'istanza è pallino");
    </script>

  3. #3
    anche con i getter e setter finische che si ricade lì: da qualche parte deve essere passato il parametro come stringa.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    Io l'avrei implementato cosi:

    codice:
    Menu = function(menutype){
    	this.menutype = menutype;
    	this.setItem = function(item){
    		switch (this.menutype){ 
    		case 1:
    			alert("//creo item per menu 1");
    			break;
    			//creo item per menu 1
    		case 2:
    			alert("//creo item per menu 2");
    			break;
    			//creo item per menu 2
    		default:
    			alert("//creo item per menu default");
    			break;
    			//creo item per menu default
    		}
    	}
    }
    
    var mymenu = new Menu(1);
    var mymenu3 = new Menu(3);
    alert(mymenu.menutype);
    alert(mymenu3.menutype);
    mymenu.setItem("item");
    mymenu3.setItem("item");

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.