JavaScriptにおけるファクトリ関数とコンストラクタ関数

オブジェクトを一つずつ手動で作成するのは間違いです。

ユーザーやクラスメートごとに手動でオブジェクトを書くと、コードの重複が発生します。100人のユーザーがいる場合、同じロジックを100回書くことになります。これはバグの原因となります。後で誤ってプロパティを変更してしまい、アプリケーションが壊れてしまうかもしれません。

クリーンなコードを書くために、代わりにこれら2つのパターンを使用しましょう。

1. ファクトリ関数

本物の工場を想像してみてください。原材料が投入され、完成品が出てきます。

ファクトリ関数は、引数を受け取り、新しいオブジェクトを返します。

例:

function classFactory(name) {
    return {
        reply() {
            return `${name} is present`
        }
    }
}

メリット:

2. コンストラクタ関数

コンストラクタ関数もオブジェクトを作成します。これらは 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