尝试在es6中使用Class关键字和模块

时间:2015-07-16 03:34:37

标签: javascript class ecmascript-6 babeljs

我在一本书中找到了这段代码:

class Animal(){
    constructor(){
        this.legs = 4;
        this.eyes = 2;
        this.say = "Huh?"
     }
     speak(){
         console.log(this.say)
     }
}

以上应该是定义类的正确方法,但我不能在FF或chrome中使用它。我得到了SyntaxError: class is a reserved identifier

我也在玩模块。我把

firstPodule.js文件中的

export let hello = "hello from the first module"

比我放

import {hello} from "firstModule"
console.log(hello)

在main.js文件中

我把<script type="text/javascript" src="main.js"></script>放在索引文件中,然后我得到了SyntaxError: modules are not implemented yet

我想我在使用es6语法方面遇到了问题,我认为如果使用babeljs我将能够使用它#

我希望你能在这个babel中看到“试一试”link,我试图使用类声明,但我收到错误Unexpected token (1:15)

如何使用es6的东西?我认为babel应该将es6翻译成es5。我做错了什么?

我还将<script type="application/javascript;version=1.7">放在html文件中

1 个答案:

答案 0 :(得分:1)

应该是class Animal而不是class Animal() 要在浏览器中使用ES6代码之前支持您正在使用的内容,您需要让babel将代码转换为ES5。例如,in browser

<script type="text/babel" src="main.js"></script>

要使用模块,您可以使用babel-node尝试它们,或者可以使用webpack打包js文件并将结果加载到浏览器中。