>웹 프론트엔드 >JS 튜토리얼 >자바스크립트 클래스 정의 구문, 프라이빗 멤버 소개, 보호 멤버, 정적 멤버 등_자바스크립트 기술

자바스크립트 클래스 정의 구문, 프라이빗 멤버 소개, 보호 멤버, 정적 멤버 등_자바스크립트 기술

WBOY
WBOY원래의
2016-05-16 17:58:301069검색

실제로 널리 사용되는 용어로 클래스는 객체의 템플릿입니다. mootos 프레임워크에서 영감을 받아 JS의 OO 기능을 향상시키기 위해 JSON 객체를 사용하여 이 객체의 템플릿을 설명할 수 있습니다. 이 템플릿에서는 전용 멤버, 보호 멤버 및 정적 멤버를 시뮬레이션할 수 있습니다.
이것은 JS에서 시뮬레이션된 클래스 정의 구문입니다. 코드의 클래스는 두 개의 매개변수를 허용하는 사용자 정의 함수이고 두 번째 매개변수는 객체 템플릿에 대한 JSON입니다. 이 JSON 개체에서 "extend", "initialize" 및 "static" 필드는 사전 정의된 일부 키워드이며 해당 의미는 기존 클래스 기반 OO 언어와 유사합니다. accessabe 필드는 객체 멤버의 접근성을 설명하는 데 사용됩니다. 값은 ("private", "protected", "public")입니다. 이러한 키워드는 수정된 멤버가 해당 액세스 권한을 갖도록 클래스 함수에서 특별히 처리됩니다.

코드 복사 코드는 다음과 같습니다.

Class("Person" ,{
// 상속
확장: 동물,
//생성자
initialize:function(name,sex){
this.name = name;
this.sex = sex; Person.count
},
//정적 멤버
static:{
count: {
accessabe:"private",
value: ""
}
} ,
//인스턴스 멤버
age: {//Private 속성 member
accessabe:"private",
value:0
},
//Public 속성
이름: {
접속 가능: "public",
값: ""
},
성별:{
접속 가능: "public",
값: ""
},
//Method
sleep: {//Protected 메서드
accessabe:"protected",
value: function(){
}
},
말: { //공개 메소드
accessabe: "public",
value: function(){
retun (this.age-1)
}
}
}); > //
호출 var xiaom = new Person("작은명","男");
xiaom.age //개인 속성에 접근할 수 없습니다.
xiaom.sleep() //보호된 메서드에 접근할 수 없습니다.
xiaom.say() //공개 메소드에 접근 가능

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.