>  기사  >  웹 프론트엔드  >  \"this\"는 jQuery와 JavaScript에서 어떻게 다르게 동작하나요?

\"this\"는 jQuery와 JavaScript에서 어떻게 다르게 동작하나요?

Patricia Arquette
Patricia Arquette원래의
2024-10-26 03:44:03738검색

How does

jQuery와 JavaScript의 "this" 이해

"this"는 JavaScript와 jQuery에서 매우 다양한 용도로 사용되는 키워드입니다. 그 의미는 사용되는 상황에 따라 다릅니다.

jQuery의 "this"

jQuery에서 "this"는 일반적으로 다음에 의해 조작되는 DOM 요소를 나타냅니다. 호출되는 함수. 예를 들어, 이벤트 콜백 핸들러에서는 다음과 같습니다.

$("div").click(function() {
    // Here, "this" refers to the DOM element for the clicked div.
    this.style.color = "red";
});

JavaScript의 "this"

JavaScript에서 "this"의 의미는 호출 컨텍스트에 따라 결정됩니다. (정의 컨텍스트 아님):

  • 객체 메서드: 객체의 속성으로 호출될 때 "this"는 해당 객체를 나타냅니다.
var obj = {
    foo: function() {
        alert(this.firstName);
    },
    firstName: "Fred"
};
  • 함수 호출: 객체에 바인딩되지 않고 함수가 호출되는 경우 "this"는 기본적으로 전역 객체(일반적으로 브라우저에서는 "window")로 설정됩니다.
function foo() {
    alert(this.firstName);
}
  • Function.call(): ".call()" 메서드를 사용하면 함수 호출에 대해 "this" 값을 명시적으로 지정할 수 있습니다.
foo.call(obj, 42, 27);
  • Function.apply(): ".call()"과 유사하지만 개별 인수 대신 인수 배열을 받습니다.
foo.apply(obj, [42, 27]);

특별 고려 사항:

  • ES5 엄격 모드에서 "this"는 기본값이 "object"인 느슨한 모드와 달리 어떤 값이든 가질 수 있습니다.
  • jQuery는 ".each" 메서드에서 약간 다른 "this" 구현을 사용합니다.
  • "this"를 완전히 이해하려면 JavaScript의 호출 컨텍스트와 객체 범위 지정에 대한 더 깊은 탐색이 필요합니다.

위 내용은 \"this\"는 jQuery와 JavaScript에서 어떻게 다르게 동작하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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