JavaScript 中的工厂函数与构造函数

一个一个地创建对象是一个错误。

如果你为每个用户或同学都手动编写一个对象,你就会重复编写代码。如果你有 100 个用户,你就得写 100 次相同的逻辑。这会导致 Bug。你可能会在以后不小心修改了某个属性,从而导致应用程序崩溃。

相反,请使用以下两种模式来编写整洁的代码。

  1. 工厂函数 (Factory Functions)

想象一个真实的工厂。原材料进去,成品出来。

工厂函数接收参数并返回一个新对象。

示例: function classFactory(name) { return { reply() { return ${name} is present } } }

优势:

  1. 构造函数 (Constructor Functions)

构造函数也可以创建对象。它们使用 new 关键字和 this 关键字。按照惯例,这些函数的名称首字母要大写。

示例: function Classmate(name) { this.name = name this.reply = function() { return ${this.name} is present } }

当你使用 new 时,JavaScript 会为你完成工作:

你不需要使用 return 语句。

扩展你的代码

你可以将这些模式与数组结合使用,以处理大量数据。与其逐个输入每个名字,不如使用 map 函数。

示例: const names = ['Kali', 'Andrew', 'Pearl', 'Percy'] const classmates = names.map(name => new Classmate(name))

现在你就有了一组可以随时使用的对象列表。

总结:

来源:https://dev.to/pearlodi/factory-functions-and-constructor-functions-in-javascript-lmb