this의 용법
자바스크립트는 ‘객체 지향 프로그래밍 언어’ 이다.
const calculator = {
number: 5,
add(num) {
return num + this.number;
},
del(num) {
return num - this.number;
},
mutiple(num) {
return num * this.number;
},
div(num) {
return num / this.number;
};
};
console.log(calculator.add(3)); // 8
console.log(calculator.div(5)); // 1
위 예제 처럼 객체로 프로그램을 표현하려는 프로그래밍 패러다임이 그것인데,
이때 객체의 상태 데이터를 프로퍼티(Property)라고 하며,
동작을 메서드(Method)라고 한다.
위 예제에서는 number가 상태 데이터인 프로퍼티이고,
더하기, 빼기 등을 수행하는 것은 동작인 메서드이다.
메서드는 자신이 속한 객체의 프로퍼티(데이터)를 참조하고 변경할 수 있어야 하는데,
this는 ‘자신이 속한 객체’ 또는 ‘자신이 생성할 인스턴스를 가리키는’ 자기 참조 변수
이다.
때문에, 위의 예제처럼 calculator.number가 아닌,
this.number로 프로퍼티를 참조할 수 있다.