Ecmascript 6 接收TypeError:r不是一个函数

Ecmascript 6 接收TypeError:r不是一个函数,ecmascript-6,Ecmascript 6,我在突出显示callbackresult时收到以下错误;: 未捕获类型错误:r不是Image.onload webp support.js:6中的函数 正在导出文件webp-support.js: 导入文件: 问题出在这一行: webpSupport(console.log('hello')); 如果我们将其分解,您将看到问题: let supportedCallback = console.log('hello'); webpSupport(supportedCallback); 这显然行

我在突出显示callbackresult时收到以下错误;:

未捕获类型错误:r不是Image.onload webp support.js:6中的函数

正在导出文件webp-support.js:

导入文件:


问题出在这一行:

webpSupport(console.log('hello'));
如果我们将其分解,您将看到问题:

let supportedCallback = console.log('hello');
webpSupport(supportedCallback);
这显然行不通。它执行console.log,然后将未定义的结果分配给webpSupport函数中的回调。显然你不想那样。您需要传递一个本身调用console.log的函数:

我还冒昧地记录了一条比hello更有用的消息!如果您不熟悉它,则=>。。。语法是Javascript较短的函数语法,称为

webpSupport(console.log('hello'));
let supportedCallback = console.log('hello');
webpSupport(supportedCallback);
webpSupport(() => console.log('webp supported'));