2 回答
TA贡献1815条经验 获得超10个赞
类将数据(this
实例上的属性)与功能(每个实例的内部原型上的函数)联系起来。
如果您没有与实例相关联的有意义的数据,那么拥有一个类就没有多大意义了。在这里,您确实有数据(电子邮件字符串)和相关函数 ( validateEmail
),因此类是一个可能的选择,尽管当涉及更多属性和更多函数时它会更好。(如果只有一个属性,并且该属性仅存在以便可以使用该函数调用它,则类确实看起来确实没有必要冗长。)
这样一个类的一个好处是,一旦你有了一个实例,你就可以将该实例传递给任何其他模块(或作用域),并且该模块可以调用与该实例相关的函数,而无需导入等效的独立函数。例如,假设您的 User 类的使用者位于不同的模块中,并且使用者希望能够创建用户并验证它们。然后,导出大量用户代码的模块要么必须
(1) 导出许多独立的函数(这可能会变得有点乏味和难以管理),或者
(2)只导出一个类
能够仅导出一个类并让该类的任何用户或其实例使用与类相关的方法非常方便 - 这样,您不必每次需要使用与用户相关的函数时都传递多个值.
想象一下,如果模块 A 需要能够创建用户,模块 B 需要能够验证用户,模块 C 需要能够检查用户是否已被验证。如果主用户文件为这些东西中的每一个创建和导出独立函数,并且每个消费模块导入他们需要调用的东西,事情就会有点难看。但是如果主 User 文件创建并导出了一个类,这将是微不足道的:用户(模块 A)的创建者将导入该类,实例化一个 object const user = new User('a@a.com')
,并将其传递给模块 B,然后模块 B 可以调用user.validateEmail()
(没有导入必要的)。然后最终用户实例被传递到模块 C,它调用user.checkIfUserIsValidated()
(同样,不需要导入)。
使用 Class 方法,在同一对象(类实例)上拥有一个同时具有实例数据和相关函数的对象可以使代码更清晰。
当然,如果您不想,您永远不必使用类,但这是一个可能的好处。
添加回答
举报