JS 객체 리터널

shinyeongwoon·2022년 10월 25일
0

JS

목록 보기
12/16

객체 리터널

객체는 여러 개의 변수를 하나의 변수로 묶을 때 사용함

변수를 선언해 정보들을 {}안에 묶음

속성 : 객체 내부의 값으로 속성 이름과 속성값으로 구성

객체 리터널 : {} 사용해 객체를 표현한 것

const 객체 = {
	이름 :,
  	이름 :,
  	이름 :,
}

객체 속성 접근
속성 이름 : 문자열 이어야 함
속성 값 : 모든 값이 가능
객체의 속성 이름을 통해 속성 값에 접근함

객체 속성 접근 온점(.) 사용 변수.속성
[] 사용 : 변수[속성],
[] 내부는 문자열

const man = {
	name : 'shin',
  	year : 1994,
  	month : 2,
  	date : 11,
  	gender : 'M',
};

console.log(man.name);
console.log(man['name']);
console.log(man.date);
console.log(man['date']);

결과 )
shin
shin
11
11

객체 속성 값 수정하기

man.gender = 'f';

객체 속성 값 제거하기

delete man.gender;

메서드 이해하기

const dedug = {
	log : function(value){
    	console.log(value);
    },
};
debug.log('hi');

결과 )
hi

객체간 비교하기

객체가 아닌 숫자, 문자열, 불 값, null, undefined는 모두 true 반환

{} === {}
// false

'str' === 'str';
123 === 123;
false === false;
null === null;
undefined === undefined;
//true

객체는 모양이 같아도 생성할 때 마다 새로운 객체가 생성됨
같은 객체인지 비교 : 기존 객체를 변수에 저장해 두어야 함

const a = {name : 'hong'};
const array = [1,2,a];
console.log(a === array[2]);
true

참조와 복사

객체의 속성 값을 바꾸면 변수 a와 b 모두 바뀜
이때 변수 a 와 b가 같은 객체를 참조 하고 있다고 표현함
a와 b 그리고 객체 간에 참조 관계가 있다고 표현

const a = {name : 'shin'};
const b = a;
a.name = 'hero';
console.log(b.name);

//hero
let a = 'shin';
let b = a;
a = 'hero';
console.log(b);

//shin

객체가 아닌 값을 변수에 저장하면 참조 관계가 생기지 않음
참조가 생기지 않는 상황을 복사라 함
객체를 변수에 담으면 참조 관계가 생김

객체와 반복문

생성한 객체에 for in 반복문으로 반복을 적용할 수 있다.

let object = {
	name : '바나나',
  	price :  1200,
};

for(let key in object){
	console.log(`${key} : ${object[key]}`);
}

매소드 내부에서 this 키워드

let object = {
	name : 'shin';
  	price : 1200,
  	print: function(){
    	console.log(`${this.name}의 가격은 ${this.price}원 입니다.`)
    }
}

object.print();

0개의 댓글