JS - Objects_2

이바덕·2024년 1월 31일
0

Javascript 이론

목록 보기
7/12
post-thumbnail

📝가비지 컬렉션

가비지 컬렉션은 메모리 관리를 담당하는 기능으로, 더 이상 필요하지 않은 메모리를 자동으로 해제하여 프로그램이 메모리 누수(memory leaks)에 빠지지 않도록 도와줍니다.

🧐 가비지컬렉션 기준

  • JavaScript는 도달 가능성(reachability)에 따라 메모리를 관리합니다.
    👉도달 가능한 값은 쉽게 말해 어떻게든 접근하거나 사용할 수 있는 값을 의미합니다.

  • 도달 가능한 값은 메모리에서 삭제되지 않습니다.

  • JavaScript Engine 내부의 Garbage Collector가 끊임없이 도달 가능한 값을 확인합니다.

  • Garbage Collector에 의해 확인 된 도달 할 수 없는 값은 메모리에서 삭제됩니다.

🔗Javascript info 글


📝메서드와 this

✍ 메서드

객체 안에 프로퍼티로 정의된 함수

사용예시

const shopOrder = {
  total: 0,
  date: '2023. 12. 06',
  tableIndex: 5,
  menu: [
    { name: '통 새우 돈까스', price: 13000, count: 2 },
    { name: '치즈 돈까스', price: 10000, count: 1 },
    { name: '곰곰 육개장', price: 15000, count: 3 },
  ],

  //객체 안에 만들기
  totalPrice() {
    this.total = this.menu.reduce((acc, cur) => acc + cur.price * cur.count, 0);
    return this.total;
  },
};

shopOrder.totalPrice();

메서드와 this...

  • this 참조는 런타임(실행) 중에 결정됩니다. 즉, 컨텍스트에 따라 달라집니다.

  • this는 항상 메서드가 정의된 객체를 참조할 것이라고 착각합니다. 이런 개념을 'bound this'라고 합니다.

  • JavaScript의 this는 런타임 중에 결정되므로 상대적으로 유연합니다.

❗❗ this는 나를 호출한 대상을 this로 가지기 때문에 호출한 사람이 누구인지 확인해야함.

또 다른 예시

function TestFunc(name, age) {
  this.name = '이경민'; //여기서의 this는 window
  this.age = 28;       //여기서의 this는 window

  this.getAge = function () { //여기서의 this는 a
    return age;
  };
}

let a = new TestFunc('kim', 21);

console.log(a.getAge());  //21
console.log(a.getName()); //kim
// console.log(TestFunc.getAge()); //error 발생
console.log(TestFunc()); //undefined

this는 써봐야 어떻게 돌아가는지 이해할것같습니다,,


🔗참고 사이트
📍chatGPT
📍Javascript info
📍멋사 수업 내용...
📍멋사 멘토님 말씀...

profile
프엔 함 해보자고오

0개의 댓글

관련 채용 정보