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

今天遇到一个问题,在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']);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值