IE9中调用console.log.apply的报错问题

来源:互联网 发布:mac翻墙浏览器 编辑:程序博客网 时间:2024/06/05 06:09

今天遇到一个问题,在IE9下运行类似以下代码时会报错:

window.console.log.apply(window.console, ['a', 'b', 'c']);

报错提示为:

对象不支持"apply"属性或方法。

查了一下,在Stack Overflow上查到了相关问题,地址为:

https://stackoverflow.com/questions/5472938/does-ie9-support-console-log-and-is-it-a-real-function

出现问题的原因是IE9或IE8浏览器中,console不属于任何标准,而被认为是文档对象模型的一个扩展,因此consoleDOM对象一样被当做宿主对象,它不继承自Object,且它的方法也不继承自Function

既然console.log没有继承自Function,自然也就没有apply方法了,因此调用console.log.apply会报错。

此处调用console.log.apply主要是为了传入参数数组,既然IE9中会报错,那就嗅探一下即可解决:

if (window.console.log.apply) {    window.console.log.apply(window.console, ['a', 'b', 'c']);} else {    window.console.log(['a', 'b', 'c']);}
原创粉丝点击