无法将此ES6转换为ES5,包括扩展语法

时间:2016-08-16 17:03:58

标签: javascript ecmascript-6 ecmascript-5

我正在尝试将以下内容翻译成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包含以下内容:

enter image description here

感谢任何纠正此代码的帮助。

我得到“TypeErrorel未定义”与我的翻译。

1 个答案:

答案 0 :(得分:3)

请注意:

  • 箭头功能没有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);