Visualizzazione dei risultati da 1 a 6 su 6

Discussione: oggetti in Javascript

  1. #1

    oggetti in Javascript

    Ciao a tutti,
    ho un problema, che avevo risolto con un sotterfugio, ma mi pianta il pc quando ci sono troppe info.
    Ho degli oggetti così fatti:
    codice:
    function objTendina(a,b,c,d,e){
     this.name=a;
     this.level=b;
    .....
    }
    che poi instanzio...
    codice:
    var a=new objTendina("file",1,"","","");
    var b=new objTendina("modifica",1,"","","");
    var c=new objTendina("stampa",2,"","","");
    se conosco la proprietà name di un oggetto, posso risalire all'oggetto stesso? Mi spiego meglio... io ho una variabile nome che vale sicuramente uno dei nomi dei vari oggetti, come faccio a risalire all'oggetto.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    633
    non puoi direttamente, anche perchè nulla impedirebbe che ci siano più istanze con lo stesso name...
    Devi pensare ad una struttura apposta per recuperare correttamente le tue istanze...non so..come un array che tiene traccia di tutte le istanze su cui cercare..o robe del genere...
    Alcuni miei articoli in PRO.HTML.IT: JavaScript | DHTML | DOM
    Sviluppo : wedev | forum

  3. #3
    avevo già fatto così, solo che per tenere traccia di tutti gli oggetti il pc si impallava. Allora l'ho risolta così:
    do il nome della variabile dell'istanza uguale alla proprietà name, poi quando devo richiamare l'oggetto:
    codice:
    var obj=eval(nome)
    alla lunga non è velocissimo neanche così ma almeno non si impalla!

    Qualcuno sa bene come si realizza un menu a tendina? Io l'ho fatto e funziona bene, ma è appunto un po' lento.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Nei nuovi browser, quella espressione viene sostiutita con:

    var obj=getElementById('nome');

    dove nome e` definito nell'attributo id del tag:
    <div id="nome" clas="..." ...>

    Questo dovrebbe rendre molto piu` veloce.

    PS. non so se nel tuo caso specifico si puo` applicare.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    633
    Originariamente inviato da rinosan_76
    avevo già fatto così, solo che per tenere traccia di tutti gli oggetti il pc si impallava. Allora l'ho risolta così:
    do il nome della variabile dell'istanza uguale alla proprietà name, poi quando devo richiamare l'oggetto:
    codice:
    var obj=eval(nome)
    non credo si impalli per il numero delle istanze (ce ne vorrebbero mooooolte) forse c'è qualcosa altro che non va.
    cmq la tua soluzione è sotto un certo punto di vista la stessa che ti ho proposto, ovvero quella di usare un contenitore per le tue istanze.
    Nel tuo caso, il contenitore è window (l'oggetto globale), tanto che potresti (se ho capito) evitare anche di usare eval e scrivere direttamente (visto che hai usato come identificatore lo stesso nome passato come name):
    codice:
    var obj=nome;
    //o
    var obj=window[nome];
    ciauz
    Alcuni miei articoli in PRO.HTML.IT: JavaScript | DHTML | DOM
    Sviluppo : wedev | forum

  6. #6
    provero qundo torno da Creta!

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