我正在尝试在学习语言的同时将以下内容翻译成ES5:

const transitionendFn = ()=> {
    [...this.slider].forEach((el)=> el.className = 'item');
    selectedEl.classList.add('active');
    this.isAnimating = false
}


ES5:

const transitionendFn = function() {
    [].concat(this.slider).
        forEach(function (el) {
            return el.className = 'item';
        });
    selectedEl.classList.add('active');
    this.isAnimating = false
}


我不了解传播部分。

this.slider包含以下内容:

javascript - 无法将此ES6转换为ES5(包括扩展语法)-LMLPHP

任何帮助纠正此代码表示赞赏。

翻译后出现“ TypeErrorel未定义”的信息。

最佳答案

意识到:


箭头函数没有this绑定。传统函数(ES5中唯一可用的函数)可以执行,因此您必须将其绑定到所需的值。
ES5没有const变量。仅var个。
ES5没有可迭代的对象。我将假设this.slider是类似数组的。


然后翻译会像

var transitionendFn = function() {
  [].forEach.call(this.slider, function(el) {
    return el.className = 'item';
  });
  selectedEl.classList.add('active');
  this.isAnimating = false;
}.bind(this);

关于javascript - 无法将此ES6转换为ES5(包括扩展语法),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38980643/

10-11 13:22