- Factory関数を使用する方法: Factory関数は、コンストラクタ関数を返す関数です。以下は例です。
function createConstructor() {
function Constructor(name) {
this.name = name;
}
return Constructor;
}
const MyConstructor = createConstructor();
const myObject = new MyConstructor("John");
console.log(myObject.name); // 結果: "John"
上記の例では、createConstructor
関数がコンストラクタ関数Constructor
を生成して返します。MyConstructor
を使って新しいオブジェクトmyObject
を作成し、name
プロパティを設定しています。
- クロージャを使用する方法: クロージャを使うことで、外部のスコープからプライベートな変数や関数を保持しながら、コンストラクタ関数を返すことができます。以下は例です。
function createConstructor() {
var privateVariable = "私はプライベートです";
function Constructor(name) {
this.name = name;
this.getPrivateVariable = function() {
return privateVariable;
};
}
return Constructor;
}
const MyConstructor = createConstructor();
const myObject = new MyConstructor("John");
console.log(myObject.name); // 結果: "John"
console.log(myObject.getPrivateVariable()); // 結果: "私はプライベートです"
上記の例では、createConstructor
関数がクロージャを使用してプライベート変数privateVariable
を保持します。MyConstructor
を使って新しいオブジェクトmyObject
を作成し、name
プロパティを設定しています。また、getPrivateVariable
メソッドを使ってプライベート変数にアクセスしています。