对我来说,类与 NodeJS (CommonJS) 模块非常相似。您可以拥有许多它们,它们可以重复使用,它们可以互相使用,并且通常每个文件一个。
是什么让模块与类如此不同?使用它们的方式不同,命名空间的差异也很明显。除此之外,它们对我来说似乎非常相似,或者也许我只是没有看到这里明显的好处。
模块更像是包(使用 Java 术语)而不是类。您不实例化模块;它只有一份副本。它是一个用于组织相关功能的工具,但它通常不封装对象的特定实例的数据。
可能与类最接近的类似物(抛开那些在 JavaScript 中实际构造基于类的继承的库)只是一个构造函数。您当然可以将此类函数放入模块中。
function Car() {
this.colour = 'red';
}
Car.prototype.getColour = function() { return this.colour; };
var myCar = new Car();
myCar.getColour(); // returns 'red'
您可以使用模块和类来进行封装,但封装的本质是不同的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)