> 웹 프론트엔드 > JS 튜토리얼 > JavaScript 개체의 변수에 액세스하려면 언제 `this.var`을 사용해야 합니까?

JavaScript 개체의 변수에 액세스하려면 언제 `this.var`을 사용해야 합니까?

Barbara Streisand
풀어 주다: 2024-12-19 20:59:36
원래의
194명이 탐색했습니다.

When Should I Use `this.var` to Access Variables in JavaScript Objects?

JavaScript의 객체 변수 액세스: this.var 또는 Not?

JavaScript의 객체 지향 프로그래밍 모델에서는 모든 것이 다음과 같은지 궁금해하는 것이 일반적입니다. 객체 내의 변수에는 this 키워드가 필요합니다.

this.var 및 Local 변수

C의 클래스 기반 모델과 달리 JavaScript는 프로토타입 상속을 사용합니다. 원형 상속에서는 모든 것이 객체이고 객체는 다른 객체로부터 상속받을 수 있습니다.

JavaScript에서는 new 키워드로 호출되는 생성자 함수가 새 객체를 생성하고 속성을 할당합니다. 생성자 내의 this 키워드는 새로 생성된 객체를 참조합니다.

this 키워드를 통해 액세스할 수 있는 메서드는 객체에서 호출되는 함수입니다. 그러나 메소드 범위 내에 선언된 지역 변수는 this로 직접 액세스할 수 없습니다.

예:

function Foo() {
    this.bar = 0;
    this.getBar = function() {
        return this.bar;
    };
}
로그인 후 복사

이 예에서 this.bar는 bar를 참조합니다. Foo 인스턴스의 속성입니다. 그러나 getBar 메소드 내부의 bar는 기본적으로 정의되지 않은 지역 변수를 참조합니다. 속성에 액세스하려면 this.bar를 사용해야 합니다.

클로저를 통한 개인 속성

개인 속성을 생성하기 위해 JavaScript는 클로저에 의존합니다. 생성자의 범위 내에 정의된 함수는 해당 생성자의 지역 변수에 액세스할 수 있습니다. 따라서 생성자 내에서 함수를 생성하고 이를 권한 있는 메서드로 노출함으로써 비공개 속성을 유지할 수 있습니다.

예:

function Foo() {
    var bar = "foo";
    this.getBar = function() {
        return bar;
    };
}
로그인 후 복사

이 예에서 bar는 Foo 생성자의 지역 변수. getBar 메서드는 bar에 액세스할 수 있는 권한 있는 메서드입니다.

프로토타입 메서드 및 권한 있는 메서드

프로토타입 객체에 정의된 메서드는 모든 인스턴스에 상속됩니다. 그러나 하위 프로토타입이 상위 프로토타입에서 상속되지 않는 한 권한 있는 메서드에 액세스할 수 없습니다.

요약하면 this.var는 메서드 내에서 개체 속성에 액세스하는 데 필요하지만 지역 변수에는 필수가 아닙니다. . 생성자 내에서 클로저로 정의된 권한 있는 메서드는 JavaScript의 객체 지향 프로그래밍 모델에서 비공개 속성을 생성하기 위한 메커니즘을 제공합니다.

위 내용은 JavaScript 개체의 변수에 액세스하려면 언제 `this.var`을 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿