22. Object


1.対象(対象)


オブジェクト宣言構文
var (객체이름) = {
    (property1 이름) : property1값 , 
    (property2 이름) : property2값
};
ex)
let andy = {
    name : 'andy',
    age : '24',
    address : 'seoul'
}
属性の名前を繰り返すことはできません.

2.特定のオブジェクト属性にアクセスする値

1. (객체이름).(property이름)
2. (객체이름)["(프로퍼티이름)"]
let plan1 = {
    name : 'basic'
};

console.log(plan1.name);
console.log(plan1['name']);
basic
basic
一見、1の方法はずっと便利ですが、propertyの値に近づくには2の方法を使用しなければなりません.
let plan1 = {
    name : 'basic'
};

const c = 'name';

console.log(plan1[c]);
basic
以下の方法も使用できます.
let myObj = {
    property1 : 'hello',
    property2 : [1,2,3,4,5],
    property3 : {
        childproperty : 'haha'
    }
};

let name = 'property';

console.log(myObj[name+'1']);
console.log(myObj[name+'2']);
console.log(myObj[name+'3']);
console.log(myObj[name+'3']['child'+name]); // myObj 객체안에 있는 '프로퍼티이자 객체'인 property3 의 'child'+name 프로퍼티 값을 가져옴

console.log(myObj.property1);
console.log(myObj.property2);
console.log(myObj.property3);
console.log(myObj.property3.childproperty);
'hello'
[ 1, 2, 3, 4, 5 ]
{ childproperty: 'haha' }
'haha'

'hello'
[ 1, 2, 3, 4, 5 ]
{ childproperty: 'haha' }
'haha'

3.プロパティ値の変更


近づくだけでなく、修正することもできます.
let myObj = {
    property1 : 'hello',
    property2 : [1,2,3,4,5],
    property3 : {
        childproperty : 'haha'
    }
};

let name = 'property1'

myObj[name] = ['hi', 'hello'];

console.log(myObj[name]);
[ 'hi', 'hello' ]
次にstring helloはproperty 1の値を配列['hi', 'hello'] に変更する.
つまり、以下のように近づくことができる
console.log(myObj.property1[0]);
hello

4.本ユニットの部分を整理する

let objData = {
  name: 50,
  address: { 
    email: "[email protected]",
    home: "위워크 선릉2호점"
  },
  books: {
    year: [2019, 2018, 2006],
    info: [{
      name: "JS Guide",
      price: 9000
    }, {
      name: "HTML Guide",
      price: 19000,
      author: "Kim, gae bal"
    }]
  }
};
次のコードでは、HTMLガイドにアクセスする場合は、次の操作を実行できます.
console.log(objData.books.info[1].name);