对我来说,类与 NodeJS (CommonJS) 模块非常相似。你可以拥有很多,它们可以重复使用,它们可以相互使用,而且它们通常是一个文件。
是什么让模块与类如此不同?你使用它们的方式不同,命名空间的区别是显而易见的。除此之外,它们对我来说似乎非常相似,或者我可能只是在这里没有看到明显的好处。
最佳答案
模块更像是包(使用 Java 术语)而不是类。你不实例化一个模块;它只有一个副本。它是一种用于组织相关功能的工具,但它通常不封装对象特定实例的数据。
可能与类最接近的类似物(撇开那些在 JavaScript 中实际构建基于类的继承的库除外)只是一个构造函数。你当然可以将这些函数放在一个模块中。
function Car() {
this.colour = 'red';
}
Car.prototype.getColour = function() { return this.colour; };
var myCar = new Car();
myCar.getColour(); // returns 'red'
您同时使用模块和类进行封装,但封装的性质不同。
关于class - NodeJS 模块与类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6914690/