TIL 22|JS(オブジェクト文字)


Modern JavaScript DeepDiveから抜粋したオブジェクト文字の内容を書きます.

オブジェクト範囲の


オブジェクト(object)


  • PropertyとMethodからなる集合

  • JSはオブジェクトベースのプログラミング言語です.JSを構成する「ほぼすべて」のオブジェクト.

  • 元の値以外のすべての値(関数、配列、正規表現など)がオブジェクトです.

  • 元の値とオブジェクトタイプの比較
  • 元の値:1つの値、可変値
  • オブジェクトタイプ比較
  • 複合材料構造
  • は、異なるタイプの値(元の値、異なるオブジェクト)を1つのユニットに構成する.
  • 変更可能な値
  • KeyとValueからなる属性集合
  • 形式:var person={
    name:“Lee”(Property)
    age(Property Key):20(Property値)
    };

  • PropertyとMethod
  • JSのすべての使用可能な値は、Property値(関数であってもよい)
  • であってもよい
  • メソッド:Properties値が関数の場合、メソッド(オブジェクト内の関数)
  • と呼ばれ、一般的な関数を区別します.
  • ロール:オブジェクトの状態を表す値(データ)
  • メソッドの役割:
  • アクションProperty(ステータスデータ)参照および操作可能

    オブジェクトテキストからオブジェクトを作成するには


    JSで様々なオブジェクトを作成する方法

  • JSはプロトタイプベースのオブジェクト向け言語であり、複数のオブジェクト作成方法をサポートする
  • オブジェクト文字
  • オブジェクトジェネレータ関数
  • ジェネレータ関数
  • Object.createメソッド
  • クライス(ES 6)
  • 文字:理解可能な文字または約定記号を使用して値を生成する記号
  • オブジェクト回転
  • オブジェクトを作成する最も簡単な方法
  • オブジェクトのテキストは、オブジェクトのシンボルを作成するために使用されます.
  • オブジェクト文字は括弧({...})で0個以上のプロパティを定義します.カッコはコードブロックを表しません.カッコ内にPropertyが定義されていない場合は、空のオブジェクトが作成されます.かっこの後ろにプラス記号
  • 変数に割り当てられると、JSエンジンはオブジェクト文字を解析して
  • を作成する.
  • オブジェクトの作成と同時にPropertyを作成することも、オブジェクトの作成後にProperty
  • を動的に追加することもできます.
  • オブジェクト文字は、値から算出する式であり、変数
  • に割り当てることができる.
  • オブジェクト文字以外のすべてのオブジェクト作成方法は、関数を使用してオブジェクト
  • を作成する.

    保証する

  • オブジェクトはPropertyの集合であり、Propertyはキーと値からなる
  • である.
     var person = {
     // 프로퍼티 키는 name, 프로퍼티 값은 'Lee'
        name: 'Lee',
     // 프로퍼티 키는 age, 프로퍼티 값은 20
        age: 20
     };
  • パーセントがリストされている場合は、カンマ(,)で区切ります.最後の番組の後にカンマは使用しませんが、
  • も使用できます.
  • パーセント値:JSで使用可能なすべての値
  • PropertyKey
  • の空の文字列を含むすべての文字列またはシンボル値
  • 識別子として使用される
  • パーセント値の名前にアクセスできます.
  • 文字列または文字列として計算可能な式を使用して、propertyキーを動的に生成することもできます.propertyキーとして使用する式は、四角カッコ([])で
  • で囲む必要があります.
    var obj = {};
    var key = 'hello';
    
    // ES5: 프로퍼티 키 동적 생성
    obj[key] = 'world';
    // ES6 : 계산된 프로퍼티 이름
    // var obj = { [key]: 'world' };
    
    console.log(obj); //{hello: "world"}
    
  • Propertyキーで文字列またはシンボル値以外の値を使用する場合、文字列は暗黙的なタイプ変換で
  • に変換されます.
    var foo = {
    0 : 1,
    1 : 2,
    2 : 3
    };
    
    console.log(foo); // {0:1, 1:2, 2:3}
    
  • は、既存のpropertyキーを繰り返し宣言し、その後に宣言されるpropertyが最初に宣言したpropertyを上書きする.
    var foo = {
    name : 'Lee',
    name : 'Kim'
    };
    
    console.log(foo); // {name:"Kim"}
    

    方法

  • JSのすべての使用可能な値は、Property値
  • として使用できます.
  • JSの関数はオブジェクト:関数の値とすることができるので、propertyの値として
  • を使用することができる.
  • の単位値が関数である場合、一般関数を区別する方法
  • と呼ぶ.
    このキーワードは
  • メソッドで使用され、オブジェクト自体(以下の例では円オブジェクト)の参照変数
  • を指す.
    var circle = { 
      radius: 5,  // <- 프로퍼티
      
      // 원의 지름
      getDiameter: function () { // <- aptjem
         return 2 * this.radius; // this는 circle을 가리킨다.
      }
    };
    
    console.log(circle.getDiameter());  // 10
      

    特許アクセス

  • Propertyにアクセスする2つの方法
  • ピリオド記号:ピリオドプロパティアクセス演算子(.)使用方法
  • 角カッコ記号:角カッコプロパティアクセス演算子([...])使用方法
  • プロパティ値の更新

  • 既存のプロパティに値を割り当てると、プロパティ値
  • が更新されます.
    var person = {
      name: 'Lee'
    };
    
    // person 객체에 name 프로퍼티가 존재하므로 name 프로퍼티의 값이 갱신된다.
    
    person.name = 'Kim';
    
    console.log(person); //{name : 'Kim'}
    

    Property動的作成

  • 存在しないPropertyに値を割り当てると、動的にPropertyが作成され、追加され、
  • がProperty値に割り当てられます.
    var person = { 
        name: 'Lee'
    };
    
    person.age=20;
    console.log(person); //{name : 'Kim', age:20}
      

    プロパティの削除

  • delete演算子オブジェクトのproperty
  • を削除
  • delete演算子の被演算子は、property値にアクセス可能な式
  • である必要がある.
  • が存在しない番組を削除すると、
  • は無視されることは間違いない.
    var person = { 
        name: 'Lee'
    };
    
    person.age=20;
    console.log(person); //{name : 'Lee', age:20}
    
    delete person.age;
    console.log(person); //{name : 'Lee'}
    
    delete person.address;
    console.log(person); //{name : 'Lee'}

    ES 6に追加されたオブジェクト文字の拡張

  • パーセントサムネイルは
  • を表す.
  • 計算された専門名
  • メソッドサムネイル