Creazione e assegnazione di console.log a un nuovo oggetto

5

Ho visto un codice come questo in diversi punti:

(function() {
    var method;
    var noop = function noop() {};
    var methods = [
        'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',
        'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',
        'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',
        'timeStamp', 'trace', 'warn'
    ];
    var length = methods.length;
    var console = (window.console = window.console || {});

    while (length--) {
        method = methods[length];

        // Only stub undefined methods.
        if (!console[method]) {
            console[method] = noop;
        }
    }
}());

Specificamente sono interessato a questa riga di codice

var console = (window.console = window.console || {});

Perché stiamo creando un nuovo oggetto window.console se window.console non è definito?

Quindi, perché stiamo impostando window.console={} ?

    
posta bimtownboy 28.11.2012 - 14:54
fonte

1 risposta

6

Questo crea un file windows.console fittizio per i browser più vecchi per evitare che generino errori. Prima viene creata una funzione vuota e quindi vengono aggiunte le chiamate a funzioni mancanti (senza alcuna funzionalità reale).

    
risposta data 28.11.2012 - 15:03
fonte

Leggi altre domande sui tag