const的polyfill(kindof)?

时间:2018-02-05 13:19:39

标签: javascript const arrow-functions let

实际上我正在处理问题,让我的代码在IE中运行。不幸的是,这仍然是必要的。

不受支持的方法的Polyfill工作正常。 但我想知道,如何/如果我可以使“const”和“让”工作。有没有办法做到这一点?

关于箭头功能的相同问题可能更难。

致以最诚挚的问候,Christian

1 个答案:

答案 0 :(得分:4)

您无法 polyfill 语法更改语言。但您可以使用BabelTraceur之类的工具将使用新语法的代码转换为使用旧语法的代码,然后在IE上运行生成的旧式代码。他们将使用ES2015 +功能编写的代码编译(或“转换”)到仅使用ES5级功能编写的代码中(通常与polyfill结合使用)。

例如,此代码使用箭头函数:

Nifty.prototype.setupHandler = function() {
    this.element.addEventHandler("click", e => {
        ++this.clicks;
    });
};
Babel将

转化为:

Nifty.prototype.setupHandler = function () {
    var _this = this;

    this.element.addEventHandler("click", function (e) {
        ++_this.clicks;
    });
};

Example