我试图包装console.log以缩短它:
function log(){console.log.apply(null,arguments);}
为什么这种用法会失败?
// this fails
var a=[1,2,3,4];
log(a);
错误:
答案 0 :(得分:2)
我一直把它视为:
function log(){console.log.apply(console,arguments);}
答案 1 :(得分:-1)
@Ehtesh更正了您的语法,或者您可以使用这些方法,因为console.log.apply
在旧版本的IE(console.log.apply not working in IE9)中不起作用。
方法一:
function log(p_sMessage) {
if(!Debug) { return; }
else { if(window.console) { console.log(p_sMessage); }}
}
方法2:
var log = Debug && window.console ? window.console.log.bind(window.console) : function() {};
或
var log = (Debug && Window.prototype.Console) ? Window.prototype.console.log.bind(Window.prototype.Console) : function () { };
(调试标志专门设置控制台消息的可见性)
N.B。: 方法1 适用于所有浏览器(不支持控制台的浏览器除外),但不显示调用它的行号。 方法2 显示行号但在旧IE中不起作用。