5

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

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

我不确定他们试图用 '=> () =>' 语法来完成什么,并且不确定如何将其转换为 ES5 标准函数。任何帮助是极大的赞赏。

4

3 回答 3

6

它使用箭头函数来表示一个函数,该函数返回一个函数,该函数返回调用middleArcline函数的值。在 ES5 中,它可能看起来像这样:

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

请注意,Babel是用于在不同版本的 JavaScript 之间进行编译的好工具

于 2020-08-05T02:40:59.363 回答
4

我猜这是一个调用函数的函数。尝试这个

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

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

于 2020-08-05T02:39:59.013 回答
0
transition.selectAll('path.hidden-arc')
   .attrTween('d', function (d) {
                       return function() {
                         return   middleArcLine(d)
                       }
             );
于 2020-08-05T02:41:15.983 回答