今天突然想到用个变量去指向console.log于是:
var log = console.log;
log(1);
但是出现了如下错误:
Uncaught TypeError: Illegal invocation
是浏览器的内置console.log不能手动的指向她?
1
soulteary 2015 年 5 月 5 日 顺手答,不谢: https://github.com/soulteary/debug.js
当然,你也可以简单的定义window.console = window.console || {log:function(){...}, ...} |
2
haozhang OP @soulteary 可是这样子干的话。。console出来的line number是自定义的log函数的地方而不是使用log函数的地方。。。看起来有点累。
|
3
tonyluj 2015 年 5 月 5 日
这样也好:
var log = function(msg) { console.log(msg); } |
5
haozhang OP @tonyluj 一开始我是这么干的...但是console出来的代码line number是定义这个log函数的line number而不是调用log函数的地方,看console信息非常难受,不能第一时间看到出错的地方
|
6
tonyluj 2015 年 5 月 5 日 |
7
ibigbug 2015 年 5 月 5 日 ```
var log = console.log.bind(console) log(123) ``` 这样就好了呀 |
12
magicdawn 2015 年 5 月 5 日
log = console.log
然后调用不对,可能内部实现,是依赖this值的,log单独调用时this指向不对... 在node上就没有这个问题,console.log.toString() 显示的是native code |
15
otakustay 2015 年 5 月 6 日
同样的
var g = document.getElementById; g('foo'); 也是不行的 |