小编典典

IE9是否支持console.log,它是一个真正的功能吗?

all

window.console.logInternet Explorer 9在哪些情况下定义?

即使何时window.console.log已定义,window.console.log.apply并且window.console.log.call未定义。为什么是这样?

【IE8相关问题:IE8中console.log怎么了?.]


阅读 57

收藏
2022-06-23

共1个答案

小编典典

在 Internet Explorer 9(和
8)中,该console对象仅在针对特定选项卡打开开发人员工具时才公开。如果您隐藏该选项卡的开发人员工具窗口,则该console对象对于您导航到的每个页面都保持公开。如果您打开一个新选项卡,您还必须打开该选项卡的开发人员工具,以便console公开该对象。

console对象不是任何标准的一部分,而是文档对象模型的扩展。与其他 DOM 对象一样,它被视为宿主对象,不需要像原生 ECMAScript
函数和对象那样继承自Object,也不需要继承自 。Function这就是原因apply,并且call在这些方法上未定义。在 IE 9
中,大多数 DOM 对象都被改进为继承自原生 ECMAScript 类型。由于开发人员工具被认为是 IE 的扩展(尽管是内置扩展),因此它们显然没有获得与
DOM 其余部分相同的改进。

对于它的价值,您仍然可以在具有一点魔力的Function.prototype方法上使用一些方法:consolebind()

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