Tech/Javascript

[Javascript] 객체 지향 - 'this'

lonnie(동현) 2020. 12. 31. 16:22

1. Javascript 에서 'this 

 다음은 dongle이라는 객체를 만든 것이다.  'dongle' 이라는 이름을 가진 사람이 어떤 평가를 받았는데 첫 번째 첨수를 10점, 두 번째 점수를 20점 받았고, 이 두 점수의 합계를 구하는 method를 정의한 것이다.

dongle 이라는 객체 생성

 이 코드에서 두 점수의 합계를 출력하기 위해서 아래와 같은 코드를 통해 실행할 수 있다. dongle 이라는 객체에 있는 sum이라는 method를 불러오고, 그 객체 안의 인자를 불러와서 대입하는 식이다. 

sum method 를 출력하는 코드

 하지만 여기서, dongle 이라는 객체 안에 first와 second 값이 있다는 것을 알고 있는데, 굳이 dongle.first, dongle.second 두 번씩이나 언급할 필요가 있을까? 물론 두번정도는 괜찮을 수 있겠지만 평가 점수가 수백 개 수천 개라면 이야기가 달라질 것이다.

 

그러면 이제 인자를 생략하면서 객체의 sum method 코드를 수정하면 된다. 

sum method의 인자를 생략했을 때, 객체 코드 수정

 이것도 괜찮긴 하지만, 객체의 이름을 바꿨을 때를 생각해보자. 저 객체의 이름이 dongle 이 아니라 dongri 였는데, 실수로 dongle이라고 했다고 가정을 해보자. 그 경우에는 객체의 이름뿐만 아니라 sum method에 사용한 객체의 이름도 다시 바꾸어 주어야 하는 애로사항이 생긴다. 

 

 '2개 정도야 바꿀 수 있지' 라고 생각할 수 있지만, 수백수천 개가 있다면? 문제가 발생할 것이다. 이럴 때 사용하는 것이 'this'인데, this는 그 프로그램에서 자기 자신을 가리키는 대명사로서 역할을 한다.

 

 결과적으로 sum이라는 method가 자신이 속해 있는 객체를 가리키게 되는 것이다. 

sum method의 객체 이름을 대명사 'this'로 치환

이 'this'는 Javascript의 객체 지향에서 아주 중요한 개념이다.

728x90
반응형