JavaScript는 실제로 객체 지향 언어입니다. 이 경우 클래스 내에서 this 키워드가 특히 중요합니다.
가 클래스를 생성할 때 다음과 같은 새 클래스가 나오면 나오는 모든 클래스에는 몇 가지가 있습니다. 공통 변수 또는 기타 함수가 가장 좋은 방법입니다.
물론 객체지향 언어이기 때문에 접근 권한 문제가 있을 수밖에 없고, 이 역시 this 키워드와 밀접하게 연관되어 있습니다. 이 클래스의 액세스 권한 문제를 설명하기 위해
예제를 보여드리겠습니다.
[javascript]
//Person 클래스 function Person(){
var name ="abc";//var는 클래스 내부에 전용 변수를 선언하며 외부에서 액세스할 수 없습니다.
var age = 20>
this.name2="edg";//이 문은 공용입니다. 외부에서 접근할 수 있는 변수
this.show=function(){//shou 메서드는 외부에서 접근할 수 있는 공용 메서드이며
window.alert( name 클래스 내부의 전용 메서드에 접근할 수 있습니다. );
}
함수 show2(){//shouw2 메서드는 클래스 내부의 비공개 메서드이므로 외부에서 액세스할 수 없습니다.
}
}
var p1 = new Person();
document.writeln(p1.name2+p1.name);
p1.show()
//Person 클래스 www.2cto.com
function Person (){
var name="abc";//var는 클래스 내부에 전용 변수를 선언하며 외부에서 액세스할 수 없습니다.
var age = 20;
this.name2="edg" ;//외부에서 접근 가능한 public 변수를 선언합니다
this.show=function(){//shou 메소드는 외부에서 접근 가능한 public 메소드이며, 클래스 내부의 private 메소드에도 접근이 가능합니다
window.alert(name);
}
function show2(){//shouw2 메소드는 클래스 내부의 private 메소드이므로 외부에서 접근할 수 없습니다
}
}
var p1 = new Person();
document.writeln(p1.name2+p1.name);
이 사람은 실제로 class, 클래스 이름은 Person 입니다. var로 시작하는 변수는 모두 private 변수이고 this 키워드를 통해 선언된 변수는 public 변수이므로 외부에서 접근이 가능합니다. 물론 클래스 내부의 비공개 변수에
접근하려면 메서드를 노출하기만 하면 됩니다. 이 this.show=function(){}은 클래스 외부에서도 호출할 수 있는 공용 메서드를 선언합니다. . 물론
function test(){
경고(this.v);}
var v = 902;window.test()
function test(){
경고(this.v);
}
var v = 902;
window.test();
코드가 매우 짧습니다. 이는 누가 이 메소드를 호출하는지, 예를 들어 창 객체가 테스트를 호출하는지를 의미합니다. 메소드,
이므로 테스트 메소드 내부에서 이 v는 v 변수가 창에 정의되어 있는지, 즉 외부 세계를 참조하는지를 보면
임을 알 수 있습니다. var는 v = 902로 정의됩니다. 따라서 이 메소드가 호출하는 것은 실제로 v의 값입니다.