ホームページ > 記事 > ウェブフロントエンド > JSデザインパターンのコンストラクタパターンの詳細説明
今回は、JS のコンストラクター パターン デザイン パターン について詳しく説明します。 JS デザイン パターンのコンストラクター パターンを使用する際の 注意事項 は何ですか? 以下は実際のケースです。
古典的な OOP 言語では、コンストラクター (コンストラクター とも呼ばれます) は、オブジェクトを初期化するために使用される特別なメソッドです。 JS ではすべてがオブジェクトであるため、オブジェクト コンストラクターについてよく言及されます。
オブジェクト コンストラクターは、指定された型 (クラス) のオブジェクトを作成するために使用され、パラメーターを受け入れてオブジェクトのプロパティとメソッドを初期化できます。
オブジェクトの作成
JS では、オブジェクトの作成によく使用される 3 つのメソッドがあります://1, 推荐使用 var newObject = {}; //2, var newObject = Object.create( null ); //3, 不推荐 var newObject = new Object();ただし、これにより作成されるのは、プロパティやメソッドのない 3 つの空のオブジェクトだけです。次の 4 つの方法でオブジェクトのプロパティとメソッドを設定できます。
りー
基本コンストラクター
JS にはクラスの概念がないことはわかっていますが、コンストラクターを使用してオブジェクトを作成することもサポートされています。 [new] キーワードを使用すると、関数をコンストラクターのように動作させ、独自のオブジェクト インスタンスを作成できます。 基本的なコンストラクターの形式は次のとおりです:// ECMAScript 3 兼容的方式 // 1. 常规对象定义方式 //设置属性 newObject.someKey = "Hello World"; //获取属性 var key = newObject.someKey; // 2. 方括号方式 // 设置属性 newObject["someKey"] = "Hello World"; //获取属性 var key = newObject["someKey"]; // 仅仅用于ECMAScript 5 // 3. Object.defineProperty // 设置属性 Object.defineProperty( newObject, "someKey", { value: "for more control of the property's behavior", writable: true, enumerable: true, configurable: true }); //可以通过下面的函数简化属性设置 var defineProp = function ( obj, key, value ){ config.value = value; Object.defineProperty( obj, key, config ); }; // 使用方法 var person = Object.create( null );defineProp( person, "car", "Delorean" ); defineProp( person, "dateOfBirth", "1981" ); defineProp( person, "hasBeard", false ); // 4. Object.defineProperties //设置属性 Object.defineProperties( newObject, { "someKey": { value: "Hello World", writable: true }, "anotherKey": { value: "Foo bar", writable: false } }); // 3和4的获取属性方法同1,2.これは単純なコンストラクター パターンです。 という 2 つの主な問題があります。 第一に、継承が困難であること、第二に、toString() はオブジェクト インスタンスごとに 1 回定義されるため、Car 型のすべてのインスタンスで共有される必要があります。
プロトタイプコンストラクターを使用する
JS には非常に優れた機能があります: プロトタイプ [プロトタイプ]、 これを使用すると、オブジェクトの作成時に、コンストラクター プロトタイプ内のすべてのプロパティをオブジェクト インスタンスによって取得できます。 これにより、複数のオブジェクト インスタンスが同じプロトタイプを共有できるようになります。 前の Car の例を次のように改良します:function Car( model, year, miles ) { //这里,this指向新建立的对象自己 this.model = model; this.year = year; this.miles = miles; this.toString = function () { return this.model + " has done " + this.miles + " miles"; }; } //用法 // 建立两个car实例 var civic = new Car( "Honda Civic", 2009, 20000 ); var mondeo = new Car( "Ford Mondeo", 2010, 5000 ); // 输出结果 console.log( civic.toString() ); console.log( mondeo.toString() );上記の例では、toString() メソッドは複数の Car オブジェクト インスタンスによって共有されます。 .この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。 推奨読書:
AngularJSを使用してセカンダリリンケージの選択ドロップダウンメニューを実装する手順の詳細な説明
以上がJSデザインパターンのコンストラクタパターンの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。