javascript(프라이빗 메소드)_javascript 스킬에서 프라이빗 메소드 정의에 대한 설명

WBOY
풀어 주다: 2016-05-16 17:02:14
원래의
1176명이 탐색했습니다.

JavaScript의 세계에서는 모든 메소드가 공개이고 비공개 메소드를 기술적으로 정의하는 것은 불가능하다고 생각한 적이 있습니다. 오늘 다시 깨달았습니다.

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

var Person = function(name,sex){
this.name = name ;
this.sex = 성별;
      경고("비공개 메서드가 호출됩니다! 비공개 멤버 값: " _privateVariable);                                      ~
Alert("이름: " this .name ", 성별: " this.sex);

var p = new Person("나무 아래 Bodhi Yang Guo","male");   
p.sayHello() ;

//p.privateMethod();//여기에 오류가 보고되며, 인스턴스에서 프라이빗 메서드를 호출할 수 없습니다.
Alert(p._privateVariable);//Display: undefine


설명: 클래스의 생성자에 정의된 함수는 비공개 메서드이며 생성자에서 var로 선언된 변수도 동일합니다. 따라서 비공개 변수입니다. (단, C#과 같은 강타입 언어에서는 private 멤버 개념에 차이가 있는데, 예를 들어 생성자가 아닌 메서드에서는 호출할 수 없습니다.)

마찬가지로 set 및 get과 같은 속성의 캡슐화를 구현할 수도 있습니다




코드 복사

코드는 다음과 같습니다.


var Person = function(){ 

}

var p = new Person()

p.setSalary( 1000) ;
alert(p.getSalary());//1000 반환
alert(p.salary);//정의되지 않은 반환


참고: js의 "변수 범위" , "함수 호출 컨텍스트(this)", "클로저" 및 "프로토타입 체인"은 실제로 이해하는 데 시간을 투자할 가치가 있습니다. 이러한 장애물을 극복하고 나면 JS 초보자(예: 저)의 수준이 될 것이라고 믿습니다. 새로운 레벨에 도달하세요.
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿