✏️콜백함수
function checkmood(mood, goodCallback, badCallback){
if(mood=== "good") {
goodCallback()
} else {
badCallback()
}
}
function cry() {
console.log("ACTION :: CRY")
}
function sing() {
console.log("ACTION :: SING")
}
function dance() {
console.log("ACTION :: DANCE")
}
checkMood("sad", sing, cry);
✏️객체 : 여러값을 가질 수 있는 (비원시 자료형)

📌객체 만드는 방법
- 객체 생성자 방식: 객체를 생성할때 new를 앞에 치면 생성가능
- 객체 리터럴 방식: {} 중괄호로 만들 수 있음
let person = {
key: "value",
key1: "value2",
age: 12
}
- 프로퍼티 : key와 value, 속성, 객체가 가진 데이터 값.
- 프로퍼티가 몇개여도 상관없다.
- 자료형이 달라도 상관 없음.
- key끼리 중복해서 쓰지말기.
📌value 꺼내기(2가지)
console.log(person.key1)
console.log(person.age)
console.log(person["age"]
- 괄호표기법으로 접근하면 반드시 key를 문자열로 써야한다.
- 괄호표기법은 함수로 불러오기 용이
📌괄호표기법 장점
getPropertyValue("age")
function getPropertyValue(key){
return person[key];
- 동적인 파라미터를 전달받는 사항
- key가 딱 정해져있지않은 사항
📌객체 프로퍼티 추가 수정
let person = {
name:'뽀로로',
age:25
say: function() {
console.log("안녕");
}
}
person.location ="한국";
person['gender'] ='여성';
person['age'] ='23';
- 그리고 위에 변수를 const로 바꿔도 오류나지 않는다.
- 왜?

📌객체 프로포티 삭제
delete person['name'];
delete person.name';
delet로 지운것은 메모리연결을 지우지 않아 메모리가 남아있다.
- 값을
null로 하면 삭제됨.
person.name = null;
📌객체 프로퍼티 함수 호출하기
- 객체 프로퍼티 함수 = 메서드
- 함수가 아닌 객체 프로퍼티 = 멤버
let person = {
name:'뽀로로',
age:25,
say: function() {
console.log(`안녕 ${this["age"]}`);
}
console.log(`안녕 ${person["age"]}`);
}
}
person.say();
person['say']();
📌객체에 존재하지 않는 프로퍼티에 가면 어케될까?
console.log(`person : ${"name" in person}`)
console.log(`age : ${"age" in person}`)
console.log(`gender : ${"gender" in person}`)