导出 class 并在导入时立即实例化

Export class and instanciate it immediately on import

我在 NodeJS 4 中有一个 ES6 class :

vehicule.js

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

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

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

我是 nodeJs 的新手,有没有办法在一行中或至少以更易读的方式做到这一点?

A class 确实应该为许多对象重用。所以你应该要求 class 本身:

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

然后从中创建对象:

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

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

如果您只需要一个对象 "class",您可以只创建一个内联对象:

var vehicle = {
    myProperty: 'something'
};

module.exports = vehicle;

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

不过如果你真的非常想在一行中做到这一点,你可以这样做:

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

但不推荐这样做。几乎从来没有。

如果您真的想在一行中完成此操作:

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

但出于与@ralh 提到的相同原因,我个人更喜欢两行。