导出 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 提到的相同原因,我个人更喜欢两行。
我在 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 提到的相同原因,我个人更喜欢两行。