JavaScript 다양한 방법 구현 클래스

5010 단어 JavaScript
발췌:http://www.nowamagic.net/javascript/js_MethodsToCreateClass.php
구조 방법
function coder()

{

    this.name = '    ';

    this.job = 'Web    ';

    this.coding = function ()

    { alert('      '); }

}



var coder = new coder();

alert(coder.name);

coder.coding();

공장 방법
function createCoderFactory()

{

    var obj = new Object();

    obj.name = '    ';

    obj.job = '   ';

    obj.coding = function ()

    {

        alert('      ');

    };

    return obj;

}

var coder = createCoderFactory();

alert(coder.name);

coder.coding();

공장 방법 과 구조 방법 은 모두 같은 단점 을 가지 고 있다.즉,하나의 인 스 턴 스 를 만 들 때마다 이러한 함수 들 을 예화 하 는 것 이다.
원형 체인
function coder(){}

coder.prototype.name = '    ';

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);     /*  nowamagic*/

alert(coder2.name);     /*     nowamagic*/

혼합 방식
상기 세 가 지 는 모두 각자 의 결점 을 가지 고 있 기 때문에 우 리 는 개선 해 야 한다.
function coder()

{

    this.name = '    ';

    this.job = '   ';

}

coder.prototype.coding = function(){

    alert('      ');

};

동적 체인
앞의 세 가지 결점 을 해결 하려 면 또 하나의 방법 이 있다.
function coder()

{

    this.name = '    ';

    this.job = '   ';

    if (typeof(coder._init) == 'undefined')

    {

        this.coding = function ()

        {

            alert('      ');

        };

        this._init = true;

    }

}

 

좋은 웹페이지 즐겨찾기