자바스크립트의 this 키워드: 동작 방식과 활용 방법

Photo of author

By tutor

자바스크립트의 this 키워드: 동작 방식과 활용 방법

자바스크립트의 this 키워드: 동작 방식과 활용 방법

 

자바스크립트의 this 키워드: 동작 방식과 활용 방법

this 키워드란?

JavaScript에서 this 키워드는 함수가 호출될 때 지정된 객체를 참조합니다. 이것은 코드의 범위에서 현재 참조되는 객체를 나타냅니다.


function printName() {
  console.log(this.name);
}

const person1 = {
  name: 'John',
  print: printName
}

const person2 = {
  name: 'Jane',
  print: printName
}

person1.print(); // "John"
person2.print(); // "Jane"

위의 예시에서 printName 함수는 this 키워드를 사용하여 현재 객체의 name 속성을 출력합니다. person1과 person2 객체는 각자의 name 속성을 가지고 있으므로 print 함수를 호출할 때 this는 각 객체를 참조합니다.

this의 동작 방식

this의 값은 함수가 호출될 때 동적으로 결정됩니다. 호출하는 방법에 따라 다르게 처리됩니다.


const obj1 = {
  name: 'John',
  print: function() {
    console.log(this.name);
  }
}

const obj2 = {
  name: 'Jane'
}

obj1.print(); // "John"
obj1.print.call(obj2); // "Jane"
obj1.print.apply(obj2); // "Jane"

위의 예시에서 call과 apply 메서드를 사용하여 this의 값을 강제로 바꿀 수 있습니다. obj1.print()는 this가 obj1을 참조하므로 “John”을 출력하고, obj1.print.call(obj2)와 obj1.print.apply(obj2)는 this가 각각 obj2를 참조하므로 “Jane”을 출력합니다.

this 활용 방법

this는 객체의 메서드에서 자주 사용되며 객체의 상태에 따라 동적으로 결정됩니다.


const calculator = {
  operand1: 0,
  operand2: 0,
  sum: function() {
    console.log(this.operand1 + this.operand2)
  },
  setOperands: function(op1, op2) {
    this.operand1 = op1;
    this.operand2 = op2;
  }
}

calculator.setOperands(10, 20);
calculator.sum(); // 30

위의 예시에서 calculator 객체의 setOperands 함수에서 this는 calculator 자체를 참조합니다. setOperands 함수를 사용하여 operand1과 operand2 속성의 값을 설정하고, sum 함수를 사용하여 두 속성의 합계를 출력합니다.

결론

JavaScript의 this 키워드는 함수가 호출될 때 현재 객체를 참조합니다. call과 apply 메서드를 사용하여 this의 값을 강제로 바꿀 수 있습니다. 객체의 메서드에서 this를 사용하여 객체의 상태에 따라 동적으로 처리할 수 있습니다.

최대 100단어 설명: 자바스크립트에서 this 키워드는 함수가 호출될 때 현재 객체를 참조합니다. 함수 호출 방식에 따라 this의 값은 동적으로 결정되며, 객체의 메서드에서 자주 사용됩니다. call과 apply 메서드를 사용하여 this의 값을 바꿀 수 있으며, 객체의 상태에 따라 동적으로 처리할 수 있습니다.