オブジェクト


オブジェクトバー
  • JavaScriptは、オブジェクトベースのプログラミング言語
  • である
  • オブジェクト
  • ほとんどがJavaScriptを構成する「すべて」
  • 元のタイプは1つの値のみを表し、オブジェクトタイプは複合データ構造
  • であり、異なるタイプの値を1つのユニットに構成する.
  • オブジェクトセット
  • 、0以上のプロパティを含む
  • パーセント鍵と値からなる
  • JavaScriptで使用可能なすべての値は、property値
  • です.
  • 関数はproperty=>メソッドとしても使用できます.
  • Property:オブジェクトの状態を表す値(データ)
  • メソッド:プロパティ(ステータスデータ)を参照および操作する動作
  • オブジェクトは、オブジェクトの状態を表す値と、参照や操作が可能な動作(メソッド)を同時に含むことができるので、状態と動作を1つのユニットに構造化することが非常に有用である
    JavaScriptは、クラスベースのオブジェクト向け言語とは異なり、複数のオブジェクト作成方法をサポートするプロトタイプベースのオブジェクト向け言語です.
  • オブジェクト文字
  • オブジェクトジェネレータ関数
  • ジェネレータ関数
  • Object.createメソッド
  • クラス(ES 6)
  • オブジェクトテキストからオブジェクトを作成するには
    JavaScriptでオブジェクトを作成する最も一般的で最も簡単な方法は、オブジェクト文字を使用することです.
    オブジェクト文字はJavaScriptを表す柔軟で強力なオブジェクト生成方式である.まずクラスを定義してオブジェクトを作成し、new演算子を使用してジェネレータを呼び出す必要はありません.
    let person = {
      name: 'Lee',
      sayHello: function() {
        console.log(`Hello! My name is ${this.name}.`);
      }
    };
    
    console.log(typeof person);	// object
    console.log(person);	//{name: "Lee", sayHello: f}
    文字列または文字列で計算できる式を使用してpropertyキーを動的に生成することもできます.この場合、式をpropertyキーとして使用します([...])ロープで縛らなければならない.
    let obj = {};
    let key = 'hello';
    
    // ES5: 프로퍼티 키 동적 생성
    obj[key] = 'world';
    // ES6: 계산된 프로퍼티 이름
    // let obj = { [key]: 'world' };
    
    console.log(obj);	// {hello: "wold"}
    var、functionなどの保留語をpropertyキーとして使用してもエラーはありません.しかし、予期せぬエラーは推奨されません.
    既存のpropertyキーを繰り返し宣言すると、後で宣言されるpropertyは宣言されたpropertyを上書きします.
    let foo = {
      name: 'Lee',
      name: 'Kim'
    };
    
    console.log(foo);	//{name: "Kim"}
    方法
    property値が関数である場合、通常の関数を区別するためのメソッドと呼ばれます.
    特許アクセス
  • ポイントPropertyアクセス演算子(.)使用する句点表記法
  • 角括弧プロパティアクセス演算子([...])使用するかっこ記号
  • let person = {
      name: 'Lee'
    };
    
    // 마침표 표기법에 의한 프로퍼티 접근
    console.log(person.name);	// Lee
    
    // 대괄호 표기법에 의한 프로퍼티 접근
    console.log(person['name']);	// Lee
  • 角括弧プロパティアクセス演算子に指定するプロパティキーは、引用符で囲まれた文字列
  • でなければなりません.
    Property動的作成
    存在しないプロジェクトに値を割り当てると、プロジェクト値が動的に作成、追加、割り当てられます.
    let person = {
      name: 'Lee'
    };
    
    // person 객체에는 age 프로퍼티가 존재하지 않는다.
    // 따라서 person 객체에 age 프로퍼티가 동적으로 값이 할당된다.
    person.age = 20;
    
    console.log(person);	//{name: "Lee", age: 20}
    プロパティの削除
    delete演算子を使用してプロファイルを削除する
    let person = {
      name: 'Lee'
    };
    
    // 프로퍼티 동적 생성
    person.age = 20;
    // person 객체에 age 프로퍼티가 존재한다.
    // 따라서 delete 연산자로 age 프로퍼티를 삭제할 수 있다.
    delete person.age;
    
    // person 객체에 address 프로퍼티가 존재하지 않는다.
    // 따라서 delete 연산자로 address 프로퍼티를 삭제할 수 없다. 이때 에러가 발생하지 않는다.
    delete person.address;
    
    console.log(person);	// {name: "Lee"}
    ES 6に追加されたオブジェクト文字の拡張
    Propertyサムネイル表示
    ES 6では、変数をproperty値として使用する場合、変数名がpropertyキーと同じ名前である場合、propertyキーを省略することができる.
    let x = 1, y = 2;
    
    // 프로퍼티 축약 표현
    const obj = { x, y };
    
    console.log(obj);	// {x: 1, y: 2 }
    計算された構成名
    ES 6では、オブジェクトテキスト内部で計算されたコンフィギュレーション名を使用してコンフィギュレーションキーを動的に生成することもできます.
    const prefix = 'prop';
    let i = 0;
    
    // 객체 리터럴 내부에서 계산된 프로퍼티 이름으로 프로퍼티 키를 동적 생성
    const obj = {
      [`${prefix}-${++i}`]: i,
      [`${prefix}-${++i}`]: i,
      [`${prefix}-${++i}`]: i
    };
    
    console.log(obj);	// {prop-1: 1, prop-2: 2, prop-3: 3}