相关疑难解决方法(0)

在Chrome中创建console.log()的快捷方式

因为我很懒,我创建的函数log基本上只是以下的缩写console.log:

function log() {
  console.log.apply(console, arguments);
}
Run Code Online (Sandbox Code Playgroud)

每当我打电话给我时,我会在Google Chrome的开发者工具中看到记录的项目,右侧是记录项目的行号.但是,此行号始终相同,因为实际console.log调用位于代码中的某个特定位置(即我声明上述log函数的位置).

我也尝试过的只是:

var log = console.log;
Run Code Online (Sandbox Code Playgroud)

但这总是会引发错误:Illegal invocation.很奇怪,但我猜这不可能.

如何console.log使用开发者工具显示log调用的行号而不是实际console.log调用的位置来创建快捷方式?

javascript console google-chrome shortcut

26
推荐指数
2
解决办法
8651
查看次数

为什么我无法在Chrome(和Safari)中将console.log作为回调参数传递?

以下代码段会在Chrome(和Safari)中生成错误,但在Firefox中可以使用.

我希望在javascript控制台中显示2个数字,但在Chrome中我只得到第一个然后是 Uncaught TypeError: Illegal invocation

// a generic promise that return a random float
var makePromise = function() {
  return $.Deferred().resolve(Math.random());
}

// This works in all browsers
makePromise().then(function(d) {
  console.log(d);
});
// This works in firefox only
makePromise().then(console.log);
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

旁注:我的问题与这个问题不一样.

更新

感谢评论和回答console.log用作回调,我们需要做

makePromise().then(console.log.bind(console));
Run Code Online (Sandbox Code Playgroud)

javascript firefox google-chrome function jquery-deferred

9
推荐指数
1
解决办法
1390
查看次数