Console.log von IE9: Verfügbarkeit und Funktionalität
Die Unterstützung von window.console.log durch Internet Explorer 9 ist ein Thema, das oft Fragen aufwirft. Dieser Artikel befasst sich mit den Umständen, unter denen auf window.console.log zugegriffen werden kann, und untersucht spezifische Inkonsistenzen mit window.console.log.apply und window.console.log.call.
Wann ist window.console .log In IE9 definiert?
In Internet Explorer 9 (und 8) wird das Konsolenobjekt nur angezeigt, wenn die Entwicklertools für a aktiviert sind bestimmte Registerkarte. Wenn Sie das Fenster „Entwicklertools“ auf dieser Registerkarte schließen, bleibt der Zugriff auf das Konsolenobjekt für nachfolgende Seiten erhalten. Das Öffnen einer neuen Registerkarte erfordert jedoch die manuelle Aktivierung der Entwicklertools, um das Konsolenobjekt verfügbar zu machen.
Undefinierte window.console.log.apply und window.console.log.call
Das Konsolenobjekt im IE9 ist kein Teil eines etablierten Standards und gilt als Erweiterung des DOM. Im Gegensatz zu nativen ECMAScript-Funktionen und -Objekten ist das Konsolenobjekt nicht von Natur aus mit dem Objektprototyp oder seinen Methoden wie Function.apply und Function.call verbunden. Diese Unterscheidung erklärt, warum diese Methoden für Konsolenobjektfunktionen in IE9 nicht definiert sind.
Andere Browser-Implementierungen
In späteren Versionen von Internet Explorer erben die meisten DOM-Objekte vom nativen ECMAScript Typen, wodurch ihre Funktionalität verbessert wird. Da es sich bei den Entwicklertools jedoch um eine Erweiterung des IE handelt, profitierten sie nicht von diesen Verbesserungen, was dazu führte, dass weiterhin keine Apply- und Call-Methoden für Konsolenobjektfunktionen vorhanden sind.
Funktionsmethoden mit Konsolenobjekten verwenden Funktionen
Obwohl window.console.log.apply und window.console.log.call in IE9 nicht direkt zugänglich sind, ist es dennoch möglich, sie zu verwenden Function.prototype-Methoden über die Funktion bind():
var log = Function.prototype.bind.call(console.log, console); log.apply(console, ["this", "is", "a", "test"]); //-> "thisisatest"
Das obige ist der detaillierte Inhalt vonSind window.console.log.apply und window.console.log.call in IE9 definiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!