JS: 객체

김현수·2020년 12월 25일
0

객체

하나의 이름에 여러 종류의 값을 넣을 수 있게 해줌

const dogName = '멍멍이';
const dogAge = 2;
console.log(dogName);	// 멍멍이
console.log(dogAge);	// 2

const dog = {
	name: '멍멍이',
	age: 2,
}
console.log(dog);	// Object {name: "멍멍이", age: 2}
console.log(dog.name);	// 멍멍이
console.log(dog.age)	// 2

key: value 식으로 넣어줘야함.
key에 공백을 넣으려면 'key with space' 식으로 따옴표를 감싸야.
반드시 쉼표를 넣어줘야 함.

const ironMan = {
	name: '토니 스타크',
	actor: '로다주',
	alias: '아이언맨'
}

function print(hero) {
	const text = `${hero.alias}(${hero.name}) 역할을 맡은 배우는 ${hero.actor} 입니다.`;
	console.log(text);
}

print(ironMan);	// 아이언맨(토니 스타크)역할을 맡은 배우는 로다주 입니다.

비구조화 할당

객체에서 특정 값을 추출하는 것

function print(hero) {
	const { alias, name, actor } = hero;	// 객체에서 값을 빼옴
	const text = `${alias}(${name}) 역할을 맡은 배우는 ${actor} 입니다.`;
	console.log(text);
}

print(ironMan);	// 아이언맨(토니 스타크)역할을 맡은 배우는 로다주 입니다.
function print({ alias, name, actor }) {
	const text = `${alias}(${name}) 역할을 맡은 배우는 ${actor} 입니다.`;
	console.log(text);
}

식으로도 사용가능


객체 안에 함수 넣기

const dog = {
	name: '멍멍이',
	sound: '멍멍!',
	say: function say() {
		console.log(this.sound);
	}
};

const cat = {
	name: '야옹이',
	sound: '야옹'
};

dog.say();		// 멍멍!
dog.say = cat.say	// dog.say의 function say()가 cat안으로 들어가면서 this가 cat을 가리키게됨
cat.say();	// 야옹

함수에 있는 this를 넣을 경우 this는 속해있는 객체를 가리킨다.

이때 화살표 함수를 쓰게 되거나, 새 const값을 설정하면 this 관계가 설정되지 않아 undefined 값이 나온다.

0개의 댓글