[자바스크립트] Object '함수 프로퍼티' 안에서 this를 안쓰면 에러가 납니다 !

const job = '프론트엔드';·2023년 7월 26일
1
post-thumbnail

Object 안, 함수 프로퍼티 안에서 this를 써야하는 이유(머선 소리지?...)

스코프라고 할 수 있을지도....🤔?

그러니깐, 적용되는 영역이 한정되는 것이 아닐까? 어쨌든, '메서드에 있는 객체를 가리킬 때 this 키워드를 사용'함

그럼 메서드 안에 만들어진 함수 프로퍼티에 있는 this.가 가리키는 것을 확인해 보자.

person 안에서 this는 그저 그 안에 있는 객체들을 의미할 뿐..

person을 콘솔로그로 찍어봤더니, person이랑 this가 가리키는게 같으니까.

아, 됐고. 본론으로 넘어가기로 ! (본론: this가 없으면, 왜 오류가 나느냐 !)

🌟 this가 없을때,

🌟 this.를 넣었을때,

아무튼 두 예제를 확인하니 확실한건 this.이 없으면 오류가 발생😟 한다는 사실 !

🌟 이런 🩷 예제 🩷는 어떨까?

this. 가 없는데, 오류가 발생하지 않는다😊 !

그렇다. 객체 바깥에 같은 이름으로 변수 선언을 했기 때문이닷 !

아 ! this.는 해당 object안에 생성된 프로퍼티인지를 구분하기 위한 것이다.

📌 정리해보면, this를 적음으로써 '나는 너와 같은 object에 생성된 프로퍼티야 !'라는 표시

또, 누구를 부르는지 헷갈릴 수 있으니까. object안에 프로퍼티를 부르는건지? 아니면 외부 변수를 부르는건지 구분하기 위함이라고 할 수 있겠지 !

💡 this.가 없음에도 오류가 발생하지 않는 것은 birthday라는 변수가 선언되어 있기 때문!

결론: 오류가 발생했던 이유는?

💰 오류메세지('birthday is not defined')를 통해서도 확인 할 수 있듯이 this.birthday는 있지만, 변수 birthday가 선언되지 않았기 때문 !

this.는 알아보기 쉽게 하려고, 혹은 구분하기 쉽게 하기 위함이지 귀찮게 하려는게 아님 ! (뭐, 귀찮은 사람도 있을 수 있음.)

💡 그렇게 생각한 이유

해당 객체 변수명을 this 대신 붙여줘도 똑같은 결과값을 얻을 수 있기 때문, 그냥 this는 mine(나의 것)의 느낌으로 받아들이고 쓰먼 되지 않을까?

예를 들어 '이거 가방이야'랑 '이거 가영이 가방이야'랑 같은 의미니깐.

profile
`나는 ${job} 개발자`

0개의 댓글