相关疑难解决方法(0)

未捕获的TypeError:javascript中的非法调用

我正在创建一个lambda函数,它使用具体的params执行第二个函数.这个代码适用于Firefox,但不适用于Chrome,它的检查器显示一个奇怪的错误,Uncaught TypeError: Illegal invocation.我的代码出了什么问题?

var make = function(callback,params){
    callback(params);
}

make(console.log,'it will be accepted!');
Run Code Online (Sandbox Code Playgroud)

javascript lambda functional-programming invocation

36
推荐指数
1
解决办法
3万
查看次数

在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
查看次数

当console.log在函数中传递时出现非法调用错误

我对此感到困惑.请找到如下代码.

var o={
 printToConsole: function(f){
   f(1);
}
};

o.printToConsole(console.log);
Run Code Online (Sandbox Code Playgroud)

//TypeError: Illegal invocation//我得到一个TypeError

从console.log的定义我们得到了这个

`function log() { [native code] }`
Run Code Online (Sandbox Code Playgroud)

在chrome中,它清楚地显示它不需要任何参数,但是当我们尝试在控制台上打印东西时,我们会这样写,即将参数传递给console.log.

console.log('Take me on Console');
Run Code Online (Sandbox Code Playgroud)

为什么我得到这个TypeError以及这个console.log在chrome中的行为?

javascript google-chrome

6
推荐指数
1
解决办法
1794
查看次数