> 웹 프론트엔드 > JS 튜토리얼 > JavaScript 객체 변수에는 언제 'this'가 필요합니까?

JavaScript 객체 변수에는 언제 'this'가 필요합니까?

Barbara Streisand
풀어 주다: 2024-12-15 08:23:10
원래의
617명이 탐색했습니다.

When Do JavaScript Object Variables Need

Javascript 객체 변수에 "this"가 필요합니까?

Javascript에서는 클래스 개념이 C와 같은 언어와 다릅니다. 클래스 기반 상속이 부족하여 프로토타입 상속이 가능해졌습니다. 개체와 그 속성은 중요한 역할을 합니다.

생성자 함수를 사용하여 개체를 생성할 때 "this" 키워드는 개체의 속성에 대한 액세스 권한을 부여합니다. 다음 예를 고려하십시오.

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

이 생성자에서 "this" 키워드는 "bar" 속성을 생성된 객체와 연결합니다. 이를 사용하지 않으면 "bar is"라는 오류가 발생합니다. 정의되지 않음."

그러나,开发者发现了一个技巧,使응용构造函数작为闭包,创造私人"属性":

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

이 예에서 변수 "bar"는 다음과 같습니다. 로컬로 선언된 반면 "getBar"는 이에 액세스하는 권한 있는 메서드입니다. 이 기술을 사용하면 외부에서 수정할 수 없는 전용 변수를 생성할 수 있습니다.

프로토타입에 선언된 메서드는 생성자 내의 지역 변수에 액세스할 수 없다는 점에 유의해야 합니다. 그러나 그들은 특권적인 방법을 활용할 수 있습니다. 다음 코드에서 프로토타입 메소드 "getFooBar"는 "getBar" 메소드를 사용하여 접미사를 연결합니다.

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

이를 통해 공개(프로토타입 메소드) 및 비공개(특권 메소드) 속성을 모두 생성할 수 있습니다. 단일 개체 내에서. 권한 있는 메서드는 서로 다른 범위 체인을 사용하여 고유한 함수 개체를 생성하므로 메모리 사용량을 고려하는 것이 중요합니다. 대량의 인스턴스에는 프로토타입 방식이 선호됩니다.

위 내용은 JavaScript 객체 변수에는 언제 'this'가 필요합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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