Articles of 类

如何添加mixin ES6的JavaScript类?

在具有一些实例variables和方法的ES6类中,如何添加一个mixin? 我在下面给出了一个例子,虽然我不知道mixin对象的语法是否正确。 class Test { constructor() { this.var1 = 'var1' } method1() { console.log(this.var1) } test() { this.method2() } } var mixin = { var2: 'var2', method2: { console.log(this.var2) } } 如果我运行(new Test()).test() ,它会失败,因为类中没有method2 ,因为它在mixin中,所以我需要将mixinvariables和方法添加到类中。 我看到有一个lodash mixin函数https://lodash.com/docs/4.17.4#mixin ,但我不知道如何使用它与ES6类。 我很好地使用lodash的解决scheme,甚至没有库提供mixinfunction的纯JS。

扩展EventEmitter时如何解决这个问题没有定义?

以下代码失败: var EventEmitter = require('events'); class Foo extends EventEmitter{ constructor(){ this.name = 'foo'; } print(){ this.name = 'hello'; console.log('world'); } } var f = new Foo(); console.log(f.print()); 并打印错误 this.name = 'foo'; ^ ReferenceError: this is not defined 但是,当我不扩展EventEmitter它工作正常。 为什么会发生这种情况,我该如何解决? 运行nodejs 4.2.1

模块导出类Nodes.js

我是一个Nodes.js noob,我试图让我的头模块结构。 到目前为止,我有一个模块(testMod.js)定义了这个类的构造: var testModule = { input : "", testFunc : function() { return "You said: " + input; } } exports.test = testModule; 我试图调用testFunc()方法: var test = require("testMod"); test.input = "Hello World"; console.log(test.testFunc); 但是我得到一个TypeError: TypeError: Object #<Object> has no method 'test' 我做错了什么?

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

我希望能够使用nodejs 4.1.2的酷es6类function 我创build了以下项目: a.js: class a { constructor(test) { a.test=test; } } index.js: require('./a.js'); var b = new a(5); 你可以看到我创build一个简单的类,它的构造函数获取一个参数。 并在我包括我需要这个类,并创build一个新的对象基于该类。 很简单..但仍然我得到以下错误: 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 […]