Visualizzazione risultati 1 fino 4 di 4

Discussione: [JS] overriding metodi nativi

  1. #1
    L'avatar di AlexKidd
    AlexKidd non è connesso Altervistiano Junior
    Data registrazione
    09-02-2007
    Messaggi
    516

    Question [JS] overriding metodi nativi

    ho una domanda curiosa

    conosco un buon numero di linguaggi di programmazione e recentemente mi sono interessato a javascript (che ho schifato spesso in passato per la mancanza di uno standard condiviso da tutti i browser web)

    da buon programmatore inizio a fare confronti con altri linguaggi per capire cosa si può fare con javascript e sono arrivato a farmi una domanda a cui non trovo una risposta

    è possibile effettuare l'overriding dei metodi e delle funzioni native ?

    ad esempio re-implementare la funzione alert() o il metodo String.link() che sono implementati nativamente da ogni browser ?

  2. #2
    programmazioned non è connesso Utente attivo
    Data registrazione
    25-03-2008
    Messaggi
    440

    Predefinito

    Per le funzioni built-in non c'è problema, se non ricordo male possono essere tranquillamente riscritte:

    Codice:
    alert = function(testo)
    {
    document.write('<span style="color:red;font-weight:bold">'+testo+'</span>');
    }
    
    alert('blablabla');
    Per quanto riguarda i metodi, boh
    Penso che un modo ci sia, ma considerando quanto siano particolari le classi in JS, direi che bisogna studiarci un'pò su...

    Ciao!
    Ultima modifica di programmazioned : 13-04-2009 alle ore 02.08.37

  3. #3
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Con gli oggetti puoi usare l'oggetto prototype, questo è un esempio che aggiunge la funzione "trim" all'oggetto String (spero di averlo scritto giusto...):
    Codice:
    String.prototype.trim = function () {
       return this.replace (/^\s+/, '').replace (/\s+$/, '');
    }
    Dopo questa dichiarazione, tutte le seguenti righe di codice sono valide:
    Codice:
    var str = "   Hello, World!   ";
    var str2 = str.trim ();
    var str3 = "  Hello, World!    ".trim () // (!!!)
    Allo stesso modo, credo che tu possa sovrascrivere i metodi nativi di JS...

    Stammi bene...
    Ultima modifica di dementialsite : 13-04-2009 alle ore 11.45.20
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  4. #4
    L'avatar di AlexKidd
    AlexKidd non è connesso Altervistiano Junior
    Data registrazione
    09-02-2007
    Messaggi
    516

    Thumbs up

    programmazioned:
    io per sovrascrivere la alert() ri-dichiaravo la funzione con
    function alert(msg){...} e mi ritrovavo con una eccezione, non avevo proprio pensato a scriverlo in quel modo (anche se conoscevo la forma)

    dementialsite:
    funziona e questo mi fa vedere il javascript sotto una nuova luce, un linguaggio personalizzabile e alterabile in ogni sua parte

    grazie a tutti e due

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •