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 중국어 웹사이트의 기타 관련 기사를 참조하세요!