javascript 에서 개인 방법 정의 (private method)

1668 단어 JavaScript
한 때 는 자바 script 의 세계 에서 모든 방법 이 공유 적 이 라 고 생각 했 는데 진정 으로 기술적 으로 개인 적 인 방법 을 정의 할 수 없 었 다. 오늘 은 또 한 번 발견 했다. 사실은 내 가 틀 렸 다! 
var Person = function(name,sex){
	this.name = name;
	this.sex = sex;		
	var _privateVariable = "";//    	
	//         ,      
	function privateMethod(){	
		_privateVariable = "private value";
		alert("       !     :" + _privateVariable);				
	}
	privateMethod(); //             			
}

Person.prototype.sayHello = function(){
	alert("  :" + this.name + ",  :" + this.sex);
}

var p = new Person("       "," ");		
p.sayHello();

//p.privateMethod();//     ,           
alert(p._privateVariable);//  : undefined

설명: 클래스 의 구조 함수 에서 정 의 된 function, 즉 개인 적 인 방법 입 니 다.구조 함수 에서 var 로 설명 하 는 변 수 는 개인 변수 에 해당 합 니 다.(그러나 c \ # 와 같은 강 한 유형의 언어 에서 의 개인 구성원 개념 은 차이 가 있 습 니 다. 예 를 들 어 비 구조 함수 이외 의 다른 방법 에서 호출 할 수 없습니다) 
유사 한, 우 리 는 set, get 속성 과 유사 한 패 키 징 을 실현 할 수 있 습 니 다.
var Person = function(){	
	var salary = 0.0;

	this.setSalary = function(value){
		salary = value;
	}

	this.getSalary = function(){
		return salary;
	}
}

var p = new Person();

p.setSalary(1000);
alert(p.getSalary());//  1000
alert(p.salary);//  undefined

주: js 중의 '변수 역할 도 메 인', '함수 호출 컨 텍스트 (this)', '폐쇄', '원형 체인' 이라는 몇 가지 개념 은 확실히 시간 을 들 여 이해 할 만하 다. 이 몇 가지 고 비 를 넘 었 고 js 초보 자 (예 를 들 어 우리 세대 의 흐름) 의 수준 도 새로운 단계 가 작 을 것 이 라 고 믿는다.

좋은 웹페이지 즐겨찾기