ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptの寄生コンストラクタパターンと安全なコンストラクタパターンの例の詳細な説明

JavaScriptの寄生コンストラクタパターンと安全なコンストラクタパターンの例の詳細な説明

伊谢尔伦
伊谢尔伦オリジナル
2017-07-27 10:39:031678ブラウズ

寄生コンストラクター パターン

一般に、前述のパターンのいずれも適用できない場合は、寄生コンストラクター パターンを使用できます。このパターンの基本的な考え方は、オブジェクトを作成するコードを単純にカプセル化し、新しく作成されたオブジェクトを返す関数を作成することですが、表面的には、この関数は典型的なコンストラクターのように見えます。以下に例を示します。

function Person(name, age, job){
 var o = new Object();
 o.name = name;
 o.age = age;
 o.job = job;
 o.sayName = function(){
 alert(this.name);
 };
 return o;
}
var friend = new Person("Nicholas", 29, "Software Engineer");
friend.sayName(); //"Nicholas"

この例では、 Person 関数は新しいオブジェクトを作成し、対応するプロパティとメソッドでオブジェクトを初期化し、オブジェクトを返します。このパターンは、new 演算子が使用され、使用されるラッパー関数がコンストラクターと呼ばれることを除いて、ファクトリ パターンとまったく同じです。コンストラクターが値を返さない場合、デフォルトで新しいオブジェクト インスタンスを返します。

安全なコンストラクター パターン

いわゆる安全なオブジェクトとは、パブリック プロパティを持たず、そのメソッドがこれを参照しないオブジェクトを指します。安定したオブジェクトは、一部の安全な環境 (this および new の使用が禁止されている環境) で使用するか、他のアプリケーション (マッシュアップ プログラムなど) によってデータが変更されるのを防ぐために使用するのが最適です。安全なコンストラクターは寄生コンストラクターと同様のパターンに従いますが、2 つの違いがあります。1 つ目は、新しく作成されたオブジェクトのインスタンス メソッドがこれを参照しないこと、2 つ目は、コンストラクターが new 演算子を使用して呼び出されないことです。安定したコンストラクターの要件に従って、以前の person コンストラクターを次のように書き換えることができます。

りー

以上がJavaScriptの寄生コンストラクタパターンと安全なコンストラクタパターンの例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。