class - NodeJS 模块与类

标签 class node.js module commonjs

对我来说,类与 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/

相关文章:

node.js - Webpack 配置 - 为什么我们使用 path.resolve 进行输出而不是输入?

node.js - 使用 'npm'时需要登录github

C++ 输入运算符重载

c++ - 当我在类中使用 std::vector 作为字段时,如何在类中定义 iterator 和 const_iterator?

node.js - 更新 Node 模块不会影响程序

module - Verilog:引用模块的内部寄存器是否合理?

node.js - NodeJS - 有时我导出的方法不可用

module - 您如何组织 NInject 模块?

c++ - 如何管理多个文件、全局变量和定义

c++ - 对象列表中的变量不会改变