[JS] 콜백함수, 객체

짱효·2023년 10월 16일

JS

목록 보기
4/21

✏️콜백함수

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") //12

function getPropertyValue(key){
  return person[key];
  1. 동적인 파라미터를 전달받는 사항
  2. 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}`)
//name: true
console.log(`age : ${"age" in person}`)
//age: true
console.log(`gender : ${"gender" in person}`)
//gender: false
profile
✨🌏확장해 나가는 프론트엔드 개발자입니다✏️

0개의 댓글