将方法添加到Node.js类

时间:2015-06-20 18:12:29

标签: javascript node.js module

我有两个班,一个汽车

var config = require('./configuration');

module.exports.Car = function(){}

module.exports.Car.prototype.set_tires = config.set_tires;
module.exports.Car.prototype.remove_tires = config.remove_tires; 

module.exports.Car.prototype.drive = function(){console.log("BRUMMM BRUMMM")}

摩托车

var config = require('./configuration');

module.exports.Motorbike = function(){}

module.exports.Motorbike.prototype.set_tires = config.set_tires;
module.exports.Motorbike.prototype.remove_tires = config.remove_tires; 

module.exports.Motorbike.prototype.drive = function(){ console.log("BR BR BRUUMM")}

如您所见,配置中的两种实现方法如下所示:

module.exports.set_tires = function(tires){
    this.tires = tires;
}

module.exports.remove_tires = function(){
    console.log("The " + this.tires + " Tires will be removed");
    this.tires = null;
}

我想知道是否有另一种更好的方法来实现这些方法?在这个例子中,我给了你的只有两种共享方法,但是你可以轻松地丢失概述。 另外我想知道是否有更好的方法可以不经常重复module.exports

1 个答案:

答案 0 :(得分:2)

好像你想要合并两个对象。您可以使用Object.assign执行此操作:

Object.assign(Motorbike.prototype, config);

有关替代方法,请参阅How can I merge properties of two JavaScript objects dynamically?