在nodejs项目中使用es6类的正确方法

时间:2015-10-11 08:57:25

标签: node.js class ecmascript-6

我希望能够使用nodejs 4.1.2

的酷es6类功能

我创建了以下项目:

a.js:

class a {
  constructor(test) {
   a.test=test;
  }
}

index.js:

require('./a.js');
var b = new a(5);

你可以看到我创建了一个简单的类,它的构造函数获取了一个参数。在我的include中,我需要该类并基于该类创建一个新对象。很简单..但我仍然收到以下错误:

SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:413:25)
at Object.Module._extensions..js (module.js:452:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/Users/ufk/work-projects/bingo/server/bingo-tiny/index.js:1:63)
at Module._compile (module.js:434:26)
at Object.Module._extensions..js (module.js:452:10)

任何想法为什么?

2 个答案:

答案 0 :(得分:36)

或者你可以这样跑:

node --use_strict index.js

答案 1 :(得分:26)

我仍然对为什么需要'use strict'感到困惑,但这是有效的代码:

index.js:

"use strict"; 
var a = require('./a.js');
var b = new a(5);

a.js:

"use strict";
class a {
 constructor(test) {
  a.test=test;
 } 
}
module.exports=a;