>  기사  >  웹 프론트엔드  >  JavaScript로 정보 캡슐화 js 객체 소개

JavaScript로 정보 캡슐화 js 객체 소개

高洛峰
高洛峰원래의
2017-01-04 09:33:30922검색

JavaScript의 정보 캡슐화
코딩하기 전에 다음 용어를 이해해야 합니다.
캡슐화: 내부 데이터의 표현 및 구현 세부 사항을 숨깁니다.
개인 속성 및 메서드: 외부에서만 액세스할 수 있습니다. 공개 인터페이스를 통해 상호 작용합니다.
범위: JavaScript에서는 함수에만 범위가 있으며, 함수 내부에 정의된 속성과 메서드는 외부에서 액세스할 수 없습니다.
권한 있는 메서드: 함수 내부에 선언되어 있습니다. 함수의 내부 변수(속성)에 액세스하는 방법은 더 많은 메모리를 소비합니다.

function Person() 
{ 
/* 
* 声明私有的数据 
* 昵称,年龄,邮箱 
*/ 
var nickName, age, email; 
/* 
* 需要访问私有数据的方法(特权方法) 
* 每生成一个实例将为特权方法生成一个新的副本 
*/ 
this.setData = function(pNickName, pAge, pEmail) 
{ 
nickName = pNickName; 
age = pAge; 
email = pEmail 
}; 
this.getData = function() 
{ 
return [nickName, age, email]; 
} 
} 
/* 
* 不需要直接访问私有数据的方法(公有方法) 
* 不管生成多少实例,公有方法在内存中只存在一份 
*/ 
Person.prototype = { 
showData: function() 
{ 
alert("个人信息:" + this.getData().join()); 
} 
}

외부 코드는 개인 또는 공용 메서드를 통해 내부 속성에 액세스합니다.

var p = new Person(); 
p.setData("sky", "26", "vece@vip.qq.com"); 
p.showData();

데모 코드:

<script> 
function Person() 
{ 
var nickName, age, email; 
this.setData = function(pNickName, pAge, pEmail) 
{ 
nickName = pNickName; 
age = pAge; 
email = pEmail 
}; 
this.getData = function() 
{ 
return [nickName, age, email]; 
} 
} 
Person.prototype = { 
showData: function() 
{ 
alert("个人信息:" + this.getData().join()); 
} 
} 
var p = new Person(); 
p.setData("PHP中文网", "4", "admin@php.cn"); 
p.showData(); 
</script>

js 객체 캡슐화에 대한 더 많은 JavaScript 정보 및 관련 기사를 보려면 PHP 중국어 웹사이트에 주목하세요!

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