자바스크립트 정적 개체 및 생성자, 공개 및 비공개 이슈_javascript 기술 사용

WBOY
풀어 주다: 2016-05-16 18:33:39
원래의
1123명이 탐색했습니다.

먼저 살펴보세요:

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

var objJson={
 op1: 'objJson option1',
fn1:function(){
Alert(this.op1)
}
}

이러한 선언 형식으로 , objJson.op1 또는 objJson.fn1()을 통해 내부 속성에 직접 액세스하는 데 문제가 없습니다. 하지만 이런 경우에는
코드 복사 코드는 다음과 같습니다.

var objFn =function(){
this.op1='objFn.op1';
this.op2=function(){
경고(this.op1)
}
}

그런 다음 objFn.op1 또는 objFn.op2()를 사용하여 내부 속성에 직접 액세스하면 현재 개체가 아니기 때문에 작동하지 않습니다.
그래서 인스턴스화해야 합니다
코드 복사 코드는 다음과 같습니다.

var inst =new objFn();
alert(inst.op1);
inst.op2();

이렇게 하면 원하는 값을 얻을 수 있습니다.
JSON 형식으로 개체를 복사하려면 매우 간단하지만 문제가 있습니다.
코드 복사 코드는 다음과 같습니다.

var newone=objJson;
newone.op1='changed'
alert('objJson.op1');
원본을 찾을 수 있습니다. 개체의 op1 값도 변경되었습니다. 그러나 두 번째 개체 선언 방법을 사용하면 수정은 인스턴스 내에서만 이루어지며 다른 인스턴스에는 영향을 미치지 않습니다.
따라서 JSON과 같은 정적 개체는 일반적으로 사용되는 일부 라이브러리를 작성할 때 사용하기에 적합합니다. 자체 네임스페이스가 있으므로 누구도 다른 사람을 방해하지 않으며 사용하기 쉽습니다.
생성자의 "public" 및 "private" 속성
위 생성자를 수정하겠습니다.


var objFn=function(){
var pri1='private 변수';
this.op1='public 변수'; 🎜>this.op2 =function(){
  Alert(pri1 ',' this.op1)
 }
};
var o=new objFn(); typeof o.pri1 ' ,' typeof o.op1);//undefine, string
o.op2();//Private 변수, Public 변수


Private 변수는 허용되지 않습니다. 객체 외부에서 액세스하면 모두 typeof 이후에는 정의되지 않습니다. 개인 메소드에 대한 액세스를 살펴보겠습니다.



코드 복사
코드는 다음과 같습니다. var objFn= function(){ var pri1='개인 변수';
var pri2=function(){
this.op2()
 this.op1 ='공용 변수' ;
this.op2=function(){
경고(pri1 ',' this.op1)
this.acPri=function(){
pri2.call(this );
 };
var o=new objFn()
o.acPri();//개인 변수


참고 JavaScript의 클로저 기능으로 인해 public 메소드 acPri()를 통해 private 메소드 pri2를 호출할 때 call을 사용하여 프로그램의 컨텍스트를 전달해야 합니다. 그러나 이는 너무 혼란스러운 것 같습니다. 조금 마무리하겠습니다.




코드 복사


코드는 다음과 같습니다.};
 this.op1='공용변수';
this.op2=function(){
Alert(pri1 ',' this.op1)
this.acPri=function (){
pri2.();
};
var o=new objFn()
o.acPri();//개인 변수


물론 최종 결과는 여전히 변함이 없습니다.
재인쇄 시 다음 사항을 지켜주세요
저자: Beiyu(tw:@rehawk)
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!