NodeJS模块与类

Tow*_*wer 20 module class commonjs node.js

对我来说,类与NodeJS(CommonJS)模块非常相似.你可以拥有其中的许多,它们可以被重用,它们可以互相使用,它们通常是每个文件一个.

什么使模块与类如此不同?您使用它们的方式不同,命名空间的区别很明显.除此之外,它们对我来说似乎非常相同,或者我可能只是没有看到明显的好处.

Jer*_*man 22

模块更像是包(使用Java术语)而不是类.您没有实例化模块; 它只有一个副本.它是用于组织相关功能的工具,但它通常不封装对象的特定实例的数据.

可能是最接近类的类似物(在JavaScript中实际构造基于类的继承的那些库)只是一个构造函数.您当然可以将这些功能放在模块中.

function Car() {
    this.colour = 'red';
}
Car.prototype.getColour = function() { return this.colour; };

var myCar = new Car();
myCar.getColour(); // returns 'red'
Run Code Online (Sandbox Code Playgroud)

您可以使用模块和类进行封装,但封装的性质不同.