我正在使用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中运行良好。
答案 0 :(得分:1)
甚至不要试图在ie中运行babel。它会非常慢。使用编译器工具链(babel)创建脱机构建过程,并为编译后的文件提供服务。确实,所有现代浏览器都理解class关键字,但在您必须支持至少一个不支持的浏览器之前,您必须进行编译。 babel编译器是一个复杂的javascript程序,我相信你不希望在你的web应用程序中包含额外的数百KB的js代码。离线编译是可行的方法。
你可能想知道为什么甚至babel能够在浏览器中做到这一点:它是为了支持一些开发人员的工作流而创建的,但是现在它几乎没有必要,因为浏览器实现了大部分es6规范和一些esnext规范,如async / await太
这样的主题应该可以帮助您入门:Do I need require js when I use babel?