javascript - 在 Node.js 中实例化 javascript 类

标签 javascript ecmascript-6

为什么下面的代码给我一个错误?

// In Foo.js
class Foo {
    constructor(a) {
        this.a = a;
    }
}

module.exports = Foo

// In Index.js
var foo = new require('path/Foo.js')('param');

这给了我如果没有'new'就无法调用类构造函数Foo

谢谢。

最佳答案

我相信在您的代码中,new 运算符应用于 require() 函数,而不是 require() 返回的内容。也就是说,这个:

var foo = new require('path/Foo.js')('param');

...就像这样做:

var foo = ( new require('path/Foo.js') )('param');

...或:

var temp = new require('path/Foo.js');
var foo = temp('param');

请尝试以下操作,以便将 new 应用到您的类:

var Foo = require('path/Foo.js');
var foo = new Foo('param');

关于javascript - 在 Node.js 中实例化 javascript 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47645282/

相关文章:

javascript - 为什么 1 * new Date() 而不是 GA 片段中的 new Date().getTime()?

javascript - 按字符串名称移动下拉列表中的 li 位置

javascript - Action 不触发reducer

asynchronous - JavaScript ES6 类可以与异步代码库一起使用吗?

javascript - 使用字符串中数组的每个元素组成标准化的句子

javascript - div “flickers” 和淡出/淡入移动

javascript - 在 Google map 中打开生成的带有标记的 map

javascript - 以编程方式创建 json

arguments - es6-箭头函数-没有重复的命名参数

javascript - 如何通过 ID 从 JSON 对象数组中删除数组元素