我想知道为什么以下代码会出现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
答案 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.
删除旧代码段