导出类并在导入时立即对其进行实例化

时间:2015-10-23 08:56:28

标签: node.js class module require

我在NodeJS 4中有一个ES6课程:

vehicule.js

"use strict";
class Vehicule {
  constructor(color) {
    this.color = color;
  }
}
module.exports = Vehicule;

当我需要在另一个文件中实例化时,我发现自己这样做了:

var _Vehicule = require("./vehicule.js");
var Vehicule = new _Vehicule();

我是nodeJs的新手,有没有办法在一行中执行此操作,或者至少以更易读的方式执行此操作?

2 个答案:

答案 0 :(得分:4)

一个类实际上应该被重用于许多对象。所以你应该要求班级本身:

var Vehicule = require("./vehicule.js");

然后从中创建对象:

var vehicle1 = new Vehicule('some data here');
var vehicle2 = new Vehicule('other data here');

通常类以大写字母开头,而类(对象本身)的实例以小写字母开头。

如果只想要一个对象的“类”,则只需创建一个内联对象:

var vehicle = {
    myProperty: 'something'
};

module.exports = vehicle;

//in some other file
var vehicle = require('vehicle');

虽然如果你真的,真的想在一行中做到这一点,你可以这样做:

var vehicle = new (require('vehicle'))('some constructor data here');

但不建议这样做。几乎没有。

答案 1 :(得分:0)

如果你真的想在一行中这样做:

var Vehicule = new (require('./vehicule'))('red');

但我个人更喜欢两条线路,原因与@ralh提到的相同。