>웹 프론트엔드 >JS 튜토리얼 >중첩된 JavaScript 함수에서 `var that = this;`를 사용하는 이유는 무엇입니까?

중첩된 JavaScript 함수에서 `var that = this;`를 사용하는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-05 05:50:10303검색

Why Use `var that = this;` in Nested JavaScript Functions?

중첩 함수에서 이에 액세스: Unraveling var that = this;

JavaScript에서는 this의 범위와 가치를 이해하는 것이 중요합니다. 다음 코드 조각을 고려하세요.

function Somefunction() {
  var that = this;
  ...
}

왜 이것이 선언되고 this의 값이 할당됩니까?

이 기술의 목적을 이해하기 위해 시나리오를 시각화해 보겠습니다.

var colours = ['red', 'green', 'blue'];
document.getElementById('element').addEventListener('click', function() {
  // this points to the clicked element
  var that = this;

  colours.forEach(function() {
    // this is undefined within this inner function
    // that still refers to the clicked element
  });
});

forEach 콜백 내의 이는 클릭한 요소가 아닌 현재 배열 요소를 참조합니다. 그러나 이는 클릭한 요소에 대한 참조를 유지합니다.

중첩된 함수로 이동하면 이 범위가 변경되어 원래 값에 액세스하기 어려울 수 있습니다. 이를 별칭으로 지정하면 원래 값에 계속 액세스할 수 있습니다.

이를 별칭으로 사용하는 것이 항상 최적인 것은 아닙니다. 특히 복잡한 함수에서는 무엇을 가리키는지 명확하게 나타내는 보다 설명적인 별칭을 사용하는 것이 좋습니다.

위 내용은 중첩된 JavaScript 함수에서 `var that = this;`를 사용하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.