웹 프론트엔드 JS 튜토리얼 js에서 이것의 역할

js에서 이것의 역할

May 06, 2024 pm 01:45 PM
범위

JavaScript에서 이는 현재 실행 중인 코드의 컨텍스트 개체를 가리키는 특수 키워드입니다. 함수 컨텍스트: 전역 개체 창을 가리킵니다. 메소드 컨텍스트: 메소드가 호출되는 객체를 가리킵니다. 생성자 컨텍스트: 생성되는 새 객체를 가리킵니다. 이벤트 리스너 컨텍스트: 이벤트를 트리거한 요소를 가리킵니다. 화살표 함수 컨텍스트: 상위 범위에서 이를 상속합니다.

js에서 이것의 역할

JavaScript에서 this의 역할this 在 JavaScript 中的作用

在 JavaScript 中,this 是一个特殊关键字,指向当前正在执行代码的上下文对象。它的值根据上下文而有所不同,因为它可以引用函数、方法或对象。

函数上下文

在函数上下文中,this 始终指向全局对象,即 window 对象。因此,在函数中访问 this 时,可以访问全局变量和函数。

function sayHello() {
  console.log(this); // 输出: Window {...}
}
로그인 후 복사

方法上下文

在方法上下文中,this 始终指向调用该方法的对象。这允许方法访问对象的属性和方法。

const person = {
  name: "John",
  sayName: function () {
    console.log(this.name); // 输出: John
  },
};
로그인 후 복사

构造函数上下文

构造函数是用来创建和初始化对象的函数。在构造函数上下文中,this 指向正在创建的新对象。

function Person(name) {
  this.name = name;
}

const person1 = new Person("John");
console.log(person1.name); // 输出: John
로그인 후 복사

其他上下文

除了这些主要上下文外,this 还可以用作:

  • 事件监听器上下文:在事件监听器中,this 指向触发事件的元素。
  • 箭头函数上下文:箭头函数中的 this 继承其父作用域中的 this

注意事项

  • 严格模式下,在函数上下文中,this 不指向全局对象。如果要访问全局对象,需要使用 window 对象。
  • 在 ES6 引入了 bind()call()apply() 方法,用于显式设置或更改 this
  • JavaScript에서 this는 현재 실행 중인 코드 컨텍스트 개체를 가리키는 특수 키워드입니다. . 함수, 메소드 또는 객체를 참조할 수 있으므로 해당 값은 상황에 따라 달라집니다.
🎜🎜함수 컨텍스트🎜🎜함수 컨텍스트에서 this는 항상 전역 객체, 즉 window 객체를 가리킵니다. 따라서 함수 내에서 this에 접근하면 전역 변수와 함수에 접근할 수 있습니다. 🎜rrreee🎜🎜메서드 컨텍스트🎜🎜메서드 컨텍스트에서 this는 항상 해당 메서드가 호출되는 객체를 가리킵니다. 이를 통해 메소드는 객체의 속성과 메소드에 액세스할 수 있습니다. 🎜rrreee🎜🎜생성자 컨텍스트🎜🎜생성자는 객체를 생성하고 초기화하는 데 사용되는 함수입니다. 생성자의 컨텍스트에서 this는 생성되는 새 객체를 가리킵니다. 🎜rrreee🎜🎜기타 컨텍스트🎜🎜이러한 기본 컨텍스트 외에도 this를 다음과 같이 사용할 수도 있습니다. 🎜
  • 🎜이벤트 리스너 컨텍스트: 이벤트 리스너에서 this는 이벤트를 트리거한 요소를 가리킵니다. 🎜
  • 🎜Arrow 함수 컨텍스트: 화살표 함수의 this는 상위 범위에서 this를 상속합니다. 🎜🎜🎜🎜참고🎜
    • 엄격 모드의 함수 컨텍스트에서 this는 전역 개체를 가리키지 않습니다. 전역 개체에 액세스하려면 window 개체를 사용해야 합니다. 🎜
    • bind(), call()apply() 메서드는 ES6에서 명시적으로 설정하거나 변경하기 위해 도입되었습니다.이것. 🎜🎜

위 내용은 js에서 이것의 역할의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

C 언어에서 typedef 구조체 사용법 C 언어에서 typedef 구조체 사용법 May 09, 2024 am 10:15 AM

C 언어에서 typedef 구조체 사용법

Java에서 예상되는 변수를 해결하는 방법 Java에서 예상되는 변수를 해결하는 방법 May 07, 2024 am 02:48 AM

Java에서 예상되는 변수를 해결하는 방법

js 클로저의 장점과 단점 js 클로저의 장점과 단점 May 10, 2024 am 04:39 AM

js 클로저의 장점과 단점

C++에서 include의 의미는 무엇입니까? C++에서 include의 의미는 무엇입니까? May 09, 2024 am 01:45 AM

C++에서 include의 의미는 무엇입니까?

C++ 스마트 포인터: 수명 주기에 대한 포괄적인 분석 C++ 스마트 포인터: 수명 주기에 대한 포괄적인 분석 May 09, 2024 am 11:06 AM

C++ 스마트 포인터: 수명 주기에 대한 포괄적인 분석

js에서 이것이 다음을 가리키는 여러 가지 상황이 있습니다. js에서 이것이 다음을 가리키는 여러 가지 상황이 있습니다. May 06, 2024 pm 02:03 PM

js에서 이것이 다음을 가리키는 여러 가지 상황이 있습니다.

C++에서 함수 정의와 호출을 중첩할 수 있나요? C++에서 함수 정의와 호출을 중첩할 수 있나요? May 06, 2024 pm 06:36 PM

C++에서 함수 정의와 호출을 중첩할 수 있나요?

Java에서는 클로저가 어떻게 구현됩니까? Java에서는 클로저가 어떻게 구현됩니까? May 03, 2024 pm 12:48 PM

Java에서는 클로저가 어떻게 구현됩니까?

See all articles