클래스를 생성할 때 아래의 각 새 클래스에 공통 변수나 기타 기능이 포함되도록 하려면 this 키워드가 가장 좋은 방법입니다.
물론 객체지향 언어이기 때문에 접근 권한 문제가 있을 수밖에 없고, 이 역시 this 키워드와 밀접하게 연관되어 있습니다. 이 클래스의 액세스 권한 문제를 설명하는 예를 보여드리겠습니다.
//Person 클래스
function Person (){
var name="abc";//var는 클래스 내부에 전용 변수를 선언하며 외부에서 접근할 수 없습니다.
var age = 20; this.name2="edg" ;// 외부에서 접근할 수 있는 public 변수를 선언합니다
this.show=function(){//shou 메소드는 외부에서 접근할 수 있는 public 메소드이고 내부의 private 메소드에 접근할 수 있습니다. 클래스
window.alert(name);
}
함수 show2(){//shouw2 메소드는 클래스 내부의 비공개 메소드이며 외부에서 액세스할 수 없습니다.
}
}
var p1 = new Person();
document.writeln(p1.name2 p1.name)
p1.show()
//Person 클래스 www .jb51.net
function Person(){
var name="abc";//var은 클래스 내부에 전용 변수를 선언하고 외부에서 액세스할 수 없습니다.
var age = 20;
this.name2="edg ";//외부에서 접근 가능한 public 변수를 선언합니다
this.show=function(){//shou 메소드는 외부에서 접근 가능한 public 메소드로, 클래스 내 프라이빗 메서드에 액세스
window.alert(name);
}
function show2(){//shouw2 메서드는 클래스 내부의 프라이빗 메서드이므로 외부에서 액세스할 수 없습니다.
}
}
var p1 = new Person(); document.writeln(p1.name2 p1.name);
p1.show();
이 사람은 실제로 클래스입니다. , 클래스 이름은 Person이고, 여기에 선언된 변수는 var로 시작하는 모든 개인 변수이며, 클래스 내에서만 액세스할 수 있습니다.
물어보세요, 이 키워드를 통해 선언된 변수는 공개 변수이고 외부에서 접근이 가능합니다. 물론, 외부 접근을 달성하기 위한 메소드만 노출하면 됩니다
클래스 내부의 비공개 변수에 대해 문의하세요. This.show=function(){}은 클래스 외부에서도 호출할 수 있는 공개 메서드를 선언합니다. 물론, 이걸로
비유적으로 직접 선언된 메소드는 비공개 메소드입니다/
다른 예를 살펴보겠습니다
function test(){
경고 (this.v);
}
var v = 902;
window.test()
function test(){
Alert(this.v);
}
var v = 902;
window.test();
코드가 매우 짧다는 것은 이 메서드를 호출하는 사람이 개체, 예를 들어 창을 참조한다는 의미입니다. 객체가 테스트 메소드를 호출합니다.
그래서 테스트 메서드 내부에서 v는 v 변수가 창에 정의되어 있는지, 즉 외부적으로 가 정의되어 있는지를 보면 알 수 있습니다.
A var v = 902; 따라서 이 메소드가 호출하는 것은 실제로 v의 값입니다.