Heim  >  Artikel  >  Web-Frontend  >  Warum ist window.console.log nur verfügbar, wenn Entwicklertools in IE9 geöffnet sind?

Warum ist window.console.log nur verfügbar, wenn Entwicklertools in IE9 geöffnet sind?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-15 01:16:02539Durchsuche

Why is window.console.log Only Available When Developer Tools are Open in IE9?

Das schwer fassbare Console.log von IE9: Eine bedingte Präsenz

In Internet Explorer 9 stellt die Existenz von window.console.log ein faszinierendes Rätsel dar . Dieser Artikel befasst sich mit der rätselhaften Natur dieser Funktion und untersucht die Umstände, die ihre Präsenz und ihr Verhalten bestimmen.

Window.console.log in IE9: Ein unvollständiges Bild

Innerhalb der strengen Grenzen von IE9 wird der Funktion window.console.log nur dann Zugriff auf den globalen Bereich gewährt, wenn der Vorhang der Entwicklertools für eine bestimmte Registerkarte ordnungsgemäß geöffnet wird. Diese vorübergehende Manifestation ist jedoch nicht statisch. Während Sie durch das grenzenlose Web navigieren, bleibt das Konsolenobjekt ein ständiger Begleiter, vorausgesetzt, Ihr Entwicklertools-Fenster wird nicht kurzerhand geschlossen. Aber leider erfordert ein neuer Tab einen neuen Pakt mit den Entwicklertools, um die schwer fassbare Konsole zu enthüllen.

Warum No Harmony mit Apply and Call?

Das Rätsel vertieft sich, wann Wir berücksichtigen das eigenartige Fehlen von window.console.log.apply und window.console.log.call. Diese Uneinigkeit ergibt sich aus der einzigartigen Natur des Konsolenobjekts als Hostobjekt, das sich stolz dafür entscheidet, nicht wie seine ECMAScript-Gegenstücke von Object zu erben oder seine Methoden von Function abzuleiten. Leider hat die unvollkommene Übernahme der DOM-Objektkonformität durch IE9 die Entwicklertools in einen Zustand der Isolation versetzt und der gleichen Segnungen beraubt, die ihren Begleitern zuteil wurden.

Ein Hoffnungsschimmer: Bind to the Rescue

Trotz dieser Einschränkungen taucht aus den Tiefen von Function.prototype.bind ein Hoffnungsschimmer auf. Diese magische Beschwörung befähigt uns, eine harmonische Verbindung zwischen Konsolenmethoden und Function.prototype-Methoden herzustellen. Schauen Sie sich den folgenden Trick an:

var log = Function.prototype.bind.call(console.log, console);
log.apply(console, ["this", "is", "a", "test"]); //-> "thisisatest"

Und da haben Sie es, die Kunst, Konsolenmethoden mit einer Prise Function.prototype-Zauberei aufzurufen.

Das obige ist der detaillierte Inhalt vonWarum ist window.console.log nur verfügbar, wenn Entwicklertools in IE9 geöffnet sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn