JavaScript로 정보 캡슐화
코딩하기 전에 다음 용어를 이해해야 합니다.
캡슐화: 내부 데이터의 표현 및 구현 세부 사항을 숨깁니다.
개인 속성 및 메서드: 외부 세계에서만 사용할 수 있습니다. 공개 인터페이스는 접근 및 상호 작용을 허용합니다
범위: JavaScript에서는 함수에만 범위가 있으며 함수 내부에 정의된 속성과 메서드는 외부에서 접근할 수 없습니다
특권 메서드: 함수 내부에 선언되면 함수에 접근할 수 있습니다. 함수 내부 변수(속성) 방식은 메모리를 더 많이 소모합니다.
function Person()
{
/*
* 개인 데이터 선언
* 별명, 나이, 이메일
*/
var nickName, age, email
/*
* 개인 데이터에 액세스해야 하는 메서드(권한 있는 메서드)
* 생성된 각 인스턴스는 권한 있는 메서드에 대한 새 복사본을 생성합니다.
*/
this.setData = function(pNickName , pAge, pEmail)
{
nickName = pNickName;
age = pAge
email = pEmail
}; >return [별명, 나이, 이메일];
}
}
/*
* 개인 데이터에 직접 접근할 필요가 없는 방법(공용 방법)
* 인스턴스 수에 관계 없음 생성되며, 공용 메소드는 메모리에만 존재합니다. 사본 1개
*/
Person.prototype = {
showData: function()
{
alert("개인 정보:" this.getData( ).join())
}
}
외부 코드는 프라이빗 또는 퍼블릭 메서드를 통해 내부 속성에 액세스합니다.
p.setData("sky", "26" , "vece@vip.qq.com") ;
p.showData()
데모 코드: