无参数的ES6箭头功能

ES6 arrow function with no parameters

本文关键字:功能 ES6 参数      更新时间:2023-09-26

考虑

function f() { ... }

和另一个函数dosomething,期望函数像f

function dosomething(callback) { ...; callback() } 

期望f(剂量计量的一个例子可以是setTimeout)

调用dosomething和传递f,之间有区别吗

dosomething(f);

dosomething(() => f());

这些选项中有哪个更可取?

包装函数(第二个例子)是否是箭头函数在这里没有改变。

然而,这个包装函数可以用于禁止参数传输:在第一种情况下,如果用参数调用callback,它将被赋予f。第二种情况则不然。另一种选择是限制传输的参数的数量:dosomething((a, b) => f(a, b));

它也可以用于预防this注射:在第一种情况下,doSomething可以bind f来改变其thiscallback.bind(whatever))。有了包装函数(无论是否有箭头),它都不会有任何效果,无论doSomething做什么,f都会保留他的this(全局上下文)。