JavaScript는 class_javascript 기술의 여러 메서드 인스턴스를 구현합니다.

WBOY
풀어 주다: 2016-05-16 17:34:53
원래의
967명이 탐색했습니다.

구성 방법

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

함수 코더()
{
this.name = 'Modern Magic';
this.job = '웹 개발자';
this.coding = function ()
{ Alert('코드를 작성 중입니다. '); }
}

var coder = new coder();
alert(coder.name);
coder.coding();


팩토리 메소드
코드 복사 코드는 다음과 같습니다.

function createCoderFactory()
{
var obj = new Object() ;
obj.name = 'Modern Magic';
obj.job = 'Programmer';
obj.coding = function ()
{
Alert('코드를 작성 중입니다.' );
};
return obj;
}
var coder = createCoderFactory();
alert(coder.name);
coder.coding();

팩토리 메소드와 생성자 메소드 모두 동일한 단점을 가지고 있습니다. 즉, 인스턴스가 생성될 때마다 클래스의 각 함수가 인스턴스화된다는 것입니다.

프로토타입 체인

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

function coder() {}
coder.prototype.name = 'Modern Magic';
coder.prototype.job = '프로그래머';
coder.prototype.coding = function(){
Alert('저는 코드 작성 ');
};
var coder = new coder();
alert(coder.name);
coder.coding();

프로토타입 체인의 한 가지 단점은 하나의 인스턴스가 변경되는 한 다른 인스턴스도 그에 따라 변경된다는 것입니다. 예:

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

var coder1 = new coder();
var coder2 = new coder();
alert(coder1.name); /*현대적인 마법 표시*/
coder2.name = 'nowamagic';
alert(coder1.name); Show nowamagic* /
alert(coder2.name); /*이것도 nowamagic을 보여줍니다*/

혼합 방식
위 세 가지 모두 단점이 있으므로 개선이 필요합니다. .

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

function coder()
{
this .name = 'Modern Magic';
this.job = 'Programmer';
}
coder.prototype.coding = function(){
Alert('코드를 작성 중입니다. ');
};

동적 오리지널 체인
처음 세 가지 단점을 해결하는 또 다른 방법이 있습니다.

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

function coder()
{
this .name = 'Modern Magic';
this.job = 'Programmer';
if (typeof(coder._init) == 'undefine')
{
this.coding = 기능 ( :)
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿