지난 두 섹션에서는 JavaScript 객체지향 네임스페이스와 javascript 객체지향 JavaScript 클래스에 대해 이야기했습니다.
사실 아주 간단합니다. 쓸데없는 소리 하지 마세요. 아래 코드와 댓글을 보시면 한 눈에 이해되실 거라 믿습니다!
//클래스를 선언하고, 이는 메소드입니다. 실제로 JavaScript에서는 네임스페이스, 클래스, 멤버... 모든 것이 객체입니다
MyClass =function(){
var _this=this
//Private 변수
var aa="11 ";
//공용 변수
this.bb="22";
//비공개 메서드
function fun1(){
alert(aa); >alert(_this.bb);
}
//개인 메서드
var fun2=function(){
alert(aa)
alert(_this.bb); }
/ /공용 메소드
this.fun3=function(){
alert(aa)
alert(_this.bb)
}
}
// 테스트는 다음과 같습니다:
var mc=new MyClass();
mc.aa="AA";//Error
mc.bb="BB";//Correct
mc. fun1();//오류
mc.fun2();//오류
mc.fun3();//수정됨
간단히 말하면: 내부에 var를 사용하세요. class
키워드로 선언된 변수 또는 메서드는 비공개입니다.
function 키워드로 선언된 메서드는 비공개입니다.
this 키워드로 선언된 변수 또는 메서드는 공개입니다.
위 내용은 모두 인스턴스 클래스에 대한 것이지만 정적 클래스의 경우에는 더욱 간단합니다. JavaScript 정적 클래스는 실제로 json 객체이므로 모든 멤버가 외부에 공개됩니다.