const 객체이름 = { property1이름(=key) : property1값(=value), property2이름 : property2값, property3이름 : property3값 };
객체이름.property이름 or 객체이름["property이름" or 변수]
객체이름.존재하는 property이름 = 수정값; or 객체이름["property이름"] = 수정값;
const fruit = { name:"apple", color:"red" }; fruit.name = "banana"; fruit["color"] = "yellow"; console.log(fruit);
결과
{ name:"banana", color:"yellow" }
객체이름.추가할 property이름 = 추가할 값; or 객체이름["property이름"] = 추가할 값;
fruit.size = 20; console.log(fruit);
결과
{ name:"banana", color:"yellow", size:20 }
서로 다른 객체에 같은 프로퍼티를 저장하면
const fruit = { name:"banana", color:"yellow", size:20 }; const fruitObj = { name:"banana", color:"yellow", size:20 }; console.log(fruit === fruitObj) console.log(fruit.name === fruit.name)
결과
false true
fruit와 fruitObj 객체 자체는 같지 않다.
fruit와 fruitObj의 name의 값은 같다.
객체 fruit과 객체 fruitObj가 property(내용물)은 같지만 다른 메모리주소를 가지기 때문이다.
정의
let methodObj = { methodKey: function() { console.log(''); } }
호출방법
methodObj.methodKey();
console.log()
에서 log는 함수를 value로 가진 key이다.let alpha = {}; const naming = "name"; const value = "a"; alpha[naming] = value; console.log(alpha);
결과
{ name : "a" }
- Object.keys(객체이름)
const fruit = { name:"banana", color:"yellow", size:20 }; Object.keys(fruit);
결과
["name", "color", "size"]
- Object.values(객체이름)
const fruit = { name:"banana", color:"yellow", size:20 }; Object.values(fruit);
결과
["banana", "yellow", 20]
- Object.entries(객체이름)
const fruit = { name:"banana", color:"yellow", size:20 }; Object.entries(fruit);
결과
[["name","banana"], ["color","yellow"], ["size",20]]
객체와 배열을 위해 특별히 존재하는, ES6 에서 추가된 문법
배열에 적용
let arr = [ 'a', 'b', 'c' ] for (let i in arr) { console.log(arr[i]) }
결과
a b c
i를 0으로 초기화하고 i를 1씩 증가시켜 배열의 길이만큼 반복한다.
객체에 적용
const fruit = { name:"banana", color:"yellow", size:20 }; for (let key in fruit) { const value = fruit[key]; console.log(key); console.log(value);
결과
name banana color yellow size 20
배열의 인덱스 값을 객체의 키로 할당받는다.