非法调用,lodash

时间:2016-06-14 04:19:29

标签: javascript lodash

我想知道为什么以下代码会出现Illegal Invocation错误

_.flow( console.log ) ( 123 ) // Illegal Invocation

function log(){ _.each(arguments, function(o) { console.log(o) }); }
_.flow( log ) ( 123 ) // 123

使用lodash v4.13.1在Chrome版本49.0.2623.112(64位)上运行此功能

要成为特定的,我在lodash's documentation page上按Ctr+Shift+J

在Chrome上的开发者工具上运行此功能

1 个答案:

答案 0 :(得分:0)

根据反馈更新了答案。

必须正确调用

console.log - 换句话说,调用时必须具有正确的this值。将其称为console的方法是一种方法,但也可以使用bind

示例代码(取自我的浏览器控制台)

// Give us a test function
function ctest(console) { console("It worked") }
ctest(console.log); // This fails

// Set up a properly bound reference
var clog = console.log.bind(console);
ctest(clog); // This works.

删除旧代码段