将 => () => 转换为 ES5

Converting => () => to ES5

由于依赖于执行脚本的系统,我正在将一些脚本从 ES6 转换为 ES5。我 运行 遇到了这个特定命令的问题:

transition.selectAll('path.hidden-arc')
   .attrTween('d', d => () => middleArcLine(d));

我不确定他们试图用“=> () =>”语法完成什么,也不确定如何将其转换为 ES5 标准函数。非常感谢任何帮助。

估计是函数调用函数吧。试试这个

transition.selectAll('path.hidden-arc')
   .attrTween('d', function (d) {
                       return function() {
                           return middleArcLine(d)
                       }
                   }
             );

我可能是错的,但只是尝试一下。

它使用箭头函数来表示一个函数 returns 一个函数 returns 来自调用 middleArcline 函数的值。在 ES5 中它看起来像这样:

transition.selectAll('path.hidden-arc').attrTween('d', function (d) {
    return function () {
        return middleArcLine(d);
    };
});

请注意 Babel 是在不同版本 JavaScript

之间进行编译的好工具
transition.selectAll('path.hidden-arc')
   .attrTween('d', function (d) {
                       return function() {
                         return   middleArcLine(d)
                       }
             );