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