8. 객체, 복합 데이터

연우·2023년 1월 8일
0

드림코딩

목록 보기
5/15
post-thumbnail

객체란?

  • 서로 연관있는 속성과 행동을 묶어 주기 위해 사용
  • 속성(Property), 행동(Method)

객체 리터럴

  • Object literal {key: value}
  • key - 문자, 숫자, 문자열, 심볼
  • value - 원시값, 객체 (함수)
let apple = {
	name: 'apple',
	'hello-bye':'✋',
	0: 1,
	['hello-bye1']:'✋',
}

//key 이름과 참조하려는 이름이 똑같다면 생략이 가능
const x = 0;
const y = 0;
const coordinate = { x, y}; // {x: x, y: y} 축약

속성 데이터에 접근 법

  • ( . )마침표 표기법
  • ( [] )대괄호 표기법
apple.name; // 마침표 표기법
console.log(apple['hello-by1']); // 대괄호 표기법

속성 추가, 삭제

// 속성추가
apple.emoji = '🍎';
console.log(apple.emoji);
console.log(apple['emoji']);

//속성삭제
delete apple.emoji;
console.log(apple);

객체 동적으로 접근

  • 코딩하는 시점에 정적으로 접근이 확정됨
  • 동적으로 속성에 접근하고 싶을때는 대괄호 표기법을 사용
const obj = {
	name: '엘리',
	age: 20,
}
function getValue(obj, key){
	return obj[key];
}
console.log(getValue(obj, 'name')); // 엘리

메소드(Method)

  • 상태와 행동 객체
  • 객체의 프로퍼티 값이 함수인 프로퍼티
const apple = {
	name: 'apple',
	display: function(){
		console.log('${this.name}: 🍎'); 
      // 객체안에서 자기자신의 속성에 접근할때는 this 사용
	},
}
apple.display(); // apple: 🍎

생성자 함수

  • 특정한 템플릿에 맞게 객체를 쉽게 만들어 줄 수 있는 함수
function Fruit(name, emoji){
	this.name = name;
	this.emoji = emoji;
	this.display = () => {
		console.log('${this.name}:${this.emoji}');
	}
	return this; //생략가능
}
const apple = new Fruit('apple','🍎')
const orange = new Fruit('orange','🍊')

0개의 댓글