JavaScriptの基礎の概要(4)

1、オブジェクト

   コンセプトは:オブジェクトは、中括弧{...}と、いくつかのオプションの属性が含まれて作成することができます。プロパティキーと値のペアは、キーがある場合に文字列の値は、任意のタイプであってもよいです。

       オブジェクトの作成

1  LET =ユーザー新規新しいオブジェクト(); //コンストラクタ構文
 2 LETユーザー= {}; // "リテラル"文法

  オブジェクトの属性:

1  LETは= {//ユーザオブジェクトは、
 2       名: "ジョン"、//キー"名前"、 "ジョン"の値
 3。      年齢:30 // "キー"年齢」、30の値
 。4  };
 5  
。6は、キー属性コロンの前に「:」コロンの右側にある値

    オブジェクトのプロパティを追加および削除

1  user.sex =「男」; //オブジェクトのプロパティの追加
 2 [削除user.sexを; //オブジェクトの削除

  オブジェクトの角括弧を使用します

1つの //ワープロ複数属性
 2  LETユーザー= {};
 3  
。4  [ "鳥のような"ユーザがtrueに=; //設定
 5。 
6。 アラート([ "鳥のような"]ユーザー); // trueに使用
 7。 
8。ユーザーを削除します[ "鳥のように"]; //削除

  計算されたプロパティ

1  //例:
 2      フルーツ= "アップル"をさせ;
 3。     LET = {バッグ
 4。             [果実] :. 5
 5。    };
 6。     アラート(bag.apple);
 7。 
8つの。 //二つの例:
 9      せフルーツ= "アップル" ;
 10      せバッグ= {};
 11      バッグ[果実] = 5;
 12は、 3つの例//
 13であり     ;せフルーツ= "アップル"
 14      せバッグ= {
 15          [果実+ "テスト"] :. 5;
 16      };
 17      アラート(bag.fruittest)。

  短縮形のプロパティ値

  次のようにキーと同じ属性値を書き込むことができた場合

ユーザー= {LETの
    名前、名前と//名前:同じ名前の
    年齢:13です
}

  値などの属性が存在することを確認してください

  属性を取得することによって、やり方を分析することは、別の方法のキーワードで使用されて存在していない場合は未定義ですが、特別な事情があります。次のように具体的な例としては、以下のとおりです。

1  LET = {ユーザー);
 2  
。3  アラート(user.isExist == undifined)// trueには、プロパティが存在しないことを示している
 4。 
5。 ユーザーに警告( "ISEXISTを");偽不在に//属性
 。6  
7つの。 //特別な事情
 8  
9  LET {OBJ =
 10      試験:未定義
 11  }
 12は 
13である アラート(obj.test ==未定義)// falseに、この属性が存在するので、このようにしていない適切な使用時
 14   アラート(OBJの「テスト」) ; // trueがプロパティが存在することを示しています。

  ...のためのループで

1人の LETユーザー= {
 2    名: "ジョン"、
 3    年齢:30、
 4    isAdmin:真
 5  }。
6  
7  (ユーザにキーを聞かせて){ための
 8つの   //キー
 9    警告(キー)。//名前、年齢、isAdmin
 10    //属性键的值
 11    警報(ユーザー[キー]); //ジョン、30、真の
 12 }

  参照コピー

1  LET = {ユーザー名: 'ジョン'};
 2  
3。 LETのADMIN =ユーザー;
 4。 
5。 admin.name = 'ピート'; // "管理"の基準を変更する
 6。 
7。 アラート(user.name); //「ピート」、変更はである『ユーザー』のリファレンスから見た
 8私たちの引き出しには、2つのキーを持っているキー(管理者)が使用する場合のように、1つのオブジェクトのみが存在を示す例を超える
引き出しを、(後で別のキーを使用しますユーザーが)開いて、変更が表示されます。

  参照の比較

  

1つの それらが等しいとき// 2つの参照が同じオブジェクトを指しています。
2  LETのA = {};
 3  LETのB = A; //参照をコピー
 4。 
5。 アラート(==のB); //真には、両方の変数が同じオブジェクトを参照する
 6。 アラート(B === A); // trueに
 7  
8  //それは二つの異なる属性がある場合は、たとえ空であっても、同じではありません。
図9  のlet A = {};
 10  LETのB = {}; //二つの別々のオブジェクト
 。11  
12である falseに; //アラート(== b)は

  constオブジェクト

1つの // constが変更されたオブジェクトを変更することが可能です。
2  CONST = {ユーザ
 3。   名: "ジョン"
 。4  };
 5  
。6  user.age = 25; //(*)
 。7  
。8  アラート(user.age); // 25
 。9  //ユーザが、オブジェクト変更することはできません
 10  CONSTを= {ユーザー
 11    名: "ジョン"が
 12である };
 13である 
14  //エラー(ユーザ割り当てを割り当てることはできません)
 15  ユーザー= {
 16    名: "ピート"
 。17 }。

  オブジェクトの複製とObject.assignをマージ

  オブジェクト変数の別のコピーも、このオブジェクトの作成に相当します。

  

図1は、 元のコードの//操作
 2  LET = {ユーザ
 3。  "ジョン"、名前
 4    :30歳
 5。 ;}
 6。 
7。 LETクローン= {}; //新しい空のオブジェクト
 8。 
9。 //すべての属性値をコピー
 10  のため(LETユーザキーで){
 11    クローン[キー] =ユーザー[キー];
 12である }
 13である 
14  今や独立複製コピー//
 15  clone.name = "ピート";値変更//
 16  
。17警告(user.name); //元のオブジェクトのプロパティ値は変更されません

  Object.assignを達成するために

  構文:オブジェクト.assign(DEST [,SRC1の,SRC2の,SRC3...])

  • パラメータdestとは、src1, ..., srcN(多くのことができる)オブジェクトです。
  • この方法では、複製src1, ..., srcNにすべてのオブジェクトをdest換言すれば、第2のパラメータから始めて、すべてのオブジェクトの特性は、第1のパラメータオブジェクト、および戻りにコピーされますdest
    1人の LETユーザー= {
     2    名: "ジョン"、
     3    年齢:30
     4  }。
    5  
    6 LETクローン= Object.assign({}、ユーザ);

    特別な事情が、オブジェクトがまだオブジェクトであります

    1  LET {ユーザー=
     2    名: "ジョン"、
     3枚の。   サイズ:{
     4。     高さ:182、
     5。     幅:50
     。6    }
     。7  };
     8  
    。9  LETクローン= Object.assign({}、ユーザー);
     10  
    。11  警告(ユーザ.sizes === clone.sizes); // trueを、同じオブジェクト
     12は、 
    13である //ユーザーサイズ共有オブジェクトとクローン
     14  //ここで属性の値を変更する; ++ user.sizes.width
     15アラート(clone.sizesを。幅); // 51
    この場合、オブジェクトとオブジェクトの内部は完全に複製されていませんが、オブジェクトの値のコピーのみ、この場合は、再び判断するために、またはサウンドライブラリjを選択します

 

おすすめ

転載: www.cnblogs.com/xiaoqiyaozou/p/11443060.html