0

我正在使用 javascript 类并在 IE 11 中遇到 SCRIPT1002 问题,其中 IE 无法解释 es6 中可用的“类”关键字。我一直在阅读,使用 babel 是解决这个不幸问题的一种方法。但是,我在理解如何正确执行此操作时遇到问题。下面是我的代码。我需要添加什么才能让 IE 11 正确解释 js 类?

包含 babel.js 的标头(browser.js 正在正确加载)

<!-- babel -->
<script type="text/babel" src="<?php echo  $GLOBALS["COMMON_ROOT"]; ?>/scripts/babel-5.8.29/browser.js"></script>

javascript 文件中的类导致 SCRIPT 1002 错误

class assessmentAnswer {
    constructor(answerID, questionID, answerText, imagePath) {
      this._answerID = answerID;
      this._questionID = questionID;
      this._answerText = answerText;
      this._imagePath = imagePath;
    }

    getAnswerID(){
        return this._answerID;
    }

    getQuestionID(){
        return this._questionID;
    }

    getAnswerText(){
        return this._answerText;
    }

    getImagePath(){
        return this._imagePath;
    }

    getAll(){
        return this.getAnswerID()+","+this.getQuestionID()+","+this.getAnswerText()+","+this.getImagePath();
    }
}

此代码在 Firefox 中运行良好。

4

1 回答 1

1

甚至不要尝试在 ie 中运行 babel。这将非常缓慢。使用编译器工具链 (babel) 创建离线构建过程,并提供已编译的文件。的确,所有现代浏览器都理解 class 关键字,但在您必须支持至少一种不支持的浏览器之前,您必须进行编译。babel 编译器是一个复杂的 javascript 程序,我相信你不想在你的 web 应用程序中包含额外的数百 KB 的 js 代码。离线编译是要走的路。

您可能想知道为什么 babel 甚至能够在浏览器中执行此操作:它是为支持某些开发人员工作流而创建的,但现在它几乎没有必要,因为浏览器实现了大部分 es6 规范和一些 esnext 规范,例如 async/await。

这个所以线程应该可以帮助您入门:我使用 babel 时是否需要 require js?

于 2016-10-11T23:14:29.440 回答