> 웹 프론트엔드 > JS 튜토리얼 > 자바스크립트 객체지향(1) (퍼블릭 메소드, 프라이빗 메소드, 특권 메소드)_js 객체지향

자바스크립트 객체지향(1) (퍼블릭 메소드, 프라이빗 메소드, 특권 메소드)_js 객체지향

WBOY
풀어 주다: 2016-05-16 17:53:24
원래의
857명이 탐색했습니다.

프라이빗 메서드: 프라이빗 메서드 자체는 클래스 내부의 모든 속성, 즉 프라이빗 속성과 퍼블릭 속성에 액세스할 수 있습니다. 그러나 개인 메서드는 클래스 외부에서 호출할 수 없습니다.

Private 메소드 작성:

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

function myClass () {
var private_attribute =initial_value;
function private_method() { }
var private_method2 = function() { }
}

인스턴스 showpet( )는 Private 메소드입니다

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

var pet=function(){ var temp="" //개인 변수는 함수 또는 객체 범위 내에서만 액세스할 수 있습니다.
function showpet(){
 alert("123")
}
showpet ();// 함수 범위 내에서 비공개 메서드를 사용할 수 있습니다.
}
showpet();//에러가 발생합니다
pet.showpet()//아직 이렇게 호출할 수 없습니다

var Penguin=new pet() // 애완동물 개체 인스턴스화
Penguin.showpet()//죄송합니다. 아직 이렇게 호출하도록 할 수는 없습니다.


공용 메서드:

1. 공용 메서드는 클래스 외부에서 호출할 수 있습니다.

2. 그러나 클래스의 Private 속성에는 액세스할 수 없습니다.

3. 클래스의 프로토타입 속성을 통해 클래스 내부 또는 외부에 퍼블릭 메소드를 추가해야 합니다.

공개 메소드 작성:

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

function myClass () {
this.public_attribute = 초기_값;
this.prototype.public_method = function () { }
}
myClass.prototype.public_attribute2 =
myClass.prototype .public_method2 = function () { }

예:
코드 복사 코드

var pet=function(){
function showname(){//Private method
 alert(this.name)
}
this입니다. show=function(){ //여기가 이해가 안 되시면 아래에서 이 메소드를 소개할테니 참고해주세요.
Showname();
 }
}
pet.prototype.setname=function(str){
name=str;
}
var Penguin=new pet()
 Penguin.setname("Penguin");//Penguin에 인스턴스의 이름 값을 추가합니다
 Penguin.show(); //Penguin 팝업
Penguin.setname("wind");/ /인스턴스 추가 이름 값은 wind
Penguin.show(); // 팝업 팝업


권한 있는 메서드:

클래스 외부에서 호출

 2. 그러나 클래스의 프라이빗 속성에도 액세스할 수 있고, 클래스의 퍼블릭 속성에도 액세스할 수 있다는 것은 마지못해 특별한 퍼블릭 메서드라고 간주될 수 있습니다.

 3. 다만 위의 public 메소드의 선언 및 정의 방식과는 다릅니다. 권한 있는 메서드는 클래스 내부에 선언해야 합니다.

특권 메소드 작성:
코드 복사 코드는 다음과 같습니다.

function myClass () {
this.privileged_method = function () { }
}

인스턴스
코드 복사 코드는 다음과 같습니다:

var pet=function(){
function showname(){//Private 메소드
alert(this.name )
}
this.show=function(){//this 키워드를 사용하여 권한 있는 메서드를 정의합니다.
showname(); //권한 있는 메서드에서 비공개 메서드에 액세스합니다.
}
}
pet.prototype.setname=function(str){
name=str; 🎜>var Penguin=new pet(); //pet 개체 인스턴스화
Penguin.setname("Penguin"); //수정을 위해 공개 메서드 호출
Penguin.show() //권한 있는 메서드 호출 비공개 메소드 및 팝업 이름



다음은 제가 읽은 책과 결합하여 위의 연구를 통해 제가 이해한 것입니다. Public, Private, Privilege에 대한 이해는 다음과 같습니다.
Public 메소드: 이 클래스를 통해 인스턴스화된 모든 객체가 갖고 있거나 사용할 수 있는 메소드입니다. 일반적으로 공통 메소드는 "프로토타입 객체"에 배치됩니다. 생성자에 배치하면 공통 메소드가 반복적으로 생성됩니다.

Private 메서드: 외부에서 호출할 수 없습니다.
특권 메서드: 클로저 원칙이 사용됩니다. 즉, 내부 함수는 범위 체인을 통해 외부 함수의 변수 개체(즉, 클래스의 프라이빗 변수 및 프라이빗 메서드)에 액세스할 수 있습니다. (스코프 체인, 클로저, 변수 객체. 이 세 가지는 "Javascript 고급 프로그래밍"에서 설명됩니다.)
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿