Maison >interface Web >js tutoriel >Pourquoi window.console.log est-il uniquement disponible lorsque les outils de développement sont ouverts dans IE9 ?
L'insaisissable Console.log d'IE9 : une présence conditionnelle
Dans Internet Explorer 9, l'existence de window.console.log présente une énigme intrigante . Cet article approfondit la nature énigmatique de cette fonction et explore les circonstances qui régissent sa présence et son comportement.
Window.console.log dans IE9 : une image incomplète
Dans les limites strictes d'IE9, la fonction window.console.log n'a accès à la portée globale que si le rideau des outils de développement est gracieusement ouvert pour un onglet donné. Toutefois, cette manifestation transitoire n’est pas statique. Lorsque vous naviguez sur le Web sans limites, l'objet console reste un compagnon constant, à condition que la fenêtre de vos outils de développement ne soit pas fermée sans ménagement. Mais hélas, un nouvel onglet exige un nouveau pacte avec les outils de développement pour dévoiler la console insaisissable.
Pourquoi No Harmony avec apply et call ?
L'énigme s'approfondit lorsque nous considérons l'absence particulière de window.console.log.apply et window.console.log.call. Cette discorde découle de la nature unique de l'objet console en tant qu'objet hôte, qui choisit fièrement de ne pas hériter d'Object ou de dériver ses méthodes de Function comme ses homologues ECMAScript. Hélas, l'adoption imparfaite par IE9 de la conformité des objets DOM a laissé les outils de développement dans un état d'isolement, privés des mêmes bénédictions accordées à leurs compagnons.
Une lueur d'espoir : liez-vous à la rescousse
Malgré ces limitations, une lueur d'espoir émerge des profondeurs de Function.prototype.bind. Cette incantation magique nous permet de forger un lien harmonieux entre les méthodes console et les méthodes Function.prototype. Découvrez la supercherie suivante :
var log = Function.prototype.bind.call(console.log, console); log.apply(console, ["this", "is", "a", "test"]); //-> "thisisatest"
Et voilà, l'art d'invoquer des méthodes de console avec un soupçon de sorcellerie Function.prototype.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!