前の記事では、JavaScript(i)のオブジェクトとプロトタイプでは、JavaScriptのオブジェクトの作成に関するいくつかの基本操作に言及し、次に説明し続けます。
1つの工場モデル
オブジェクトを作成するために、次のコードを使用できます。
var user = new object(); //新しいオペレータユーザーを使用してオブジェクトを作成します。Name= 'Triangle LakeでRecited'; //オブジェクトに属性を追加しますuser.age = 22; user.address = 'hubei wuhan'; alert(user.name + "" + user.age); // return 'トライアングル湖で唱えられた「hubei wuhan」
この方法でオブジェクトを作成することはシンプルで直感的であり、JavaScriptでオブジェクトを作成する最も基本的な方法でもあります。しかし、このような問題があります。複数のオブジェクトを作成する必要がある場合は、多くの複製コードを作成する必要があります。たとえば、別のオブジェクトユーザーを作成する場合は、上記のコードを再度書き換える必要があります。これは、実際の開発プロセスでは不適切です。このようにして、オブジェクトが多すぎると、コードの量が大幅に増加します。
このような問題を解決するために、工場パターンと呼ばれる方法を使用できます。これは、大量の重複コードを生成するオブジェクトをインスタンス化する問題を解決するためです。
function create(name、age){var obj = new object(); obj.name = name; obj.age = age; obj.run = function(){return this.name + '' + this.age; }; return obj;} var obj1 = create( 'zxc'、10); //最初のインスタンスvar obj2 = create( 'cxz'、20); // 2番目のインスタンスアラート(obj1.run()); alert(obj1.run());上記のコードから、工場パターンがインスタンス時にコードの大規模な複製の問題を解決することがわかりますが、別の問題が発生します。つまり、問題を特定すると、それらがどのオブジェクトであるかを把握できません。例えば
Alert(Typeof obj1); // objectAlert(obj1 instanceof object); //真実
上記のコードは、box1がオブジェクトオブジェクトであることを示していますが、どのオブジェクトが作成されたかはわかりません。
2つのコンストラクター(建設方法)
上記の問題を解決するために、コンストラクターを使用してオブジェクトを作成できます。コンストラクターと通常の関数の唯一の違いは、コールメソッドが異なることです。ただし、コンストラクターも関数です。
function user(name、age){// constructorモードthis.name = name; this.age = age; this.run = function(){return this.name + '' + this.age; };}オブジェクトを作成するときは、新しいオペレーターを使用するだけです。
var user1 = new user( 'zxc'、25); var user2 = new user( 'cxz'、22);
これで、user1またはuser2がユーザーに属しているかどうかを検出できます。
alert(user1 instanceof user); // true
コンストラクターメソッドを使用すると、繰り返しインスタンス化の問題が解決し、オブジェクト認識の問題も解決することがわかります。
コンストラクターを使用するときに実行するプロセスは次のとおりです。
1。新しいコンストラクター()を実行すると、バックグラウンドはnew object()を実行します。
2。コンストラクターを新しいオブジェクトに範囲します。
3。コンストラクター内のコードを実行します。
4.背景は新しいオブジェクトを直接返します。
次に、コンストラクター内の関数問題を見てみましょう。次のステートメントを実行する場合:
alert(user1.run == user2.run); //結果はfalseを返します
結果はfalseを返します。つまり、メソッドは実際には参照アドレスであることを意味します。複数のオブジェクトを繰り返し作成すると、各オブジェクトのメソッドがメモリ内の新しいスペースを開き、より多くのスペースを無駄にします。この問題を解決するには、インスタンスプロパティまたはメソッドの共有を使用する必要があります。次の記事では、この問題の解決について引き続き議論します。
上記は、編集者(II)によって紹介されたJavaScriptのオブジェクトとプロトタイプです。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!