Tworzenie obiektów JS z wykorzystaniem wzorca fabryki Drukuj
Ocena użytkowników: / 0
SłabyŚwietny 
Wpisany przez Patryk yarpo Jar   
niedziela, 11 października 2009 22:43

W JS bardzo łatwo jest stworzyć obiekt:

var obj = {};


Taki zapis (literał obiektowy) jest równoważny z:

var obj = new Object;


Jednak z moich testów wynika, że pierwszy zapis działa odrobinę szybciej w większości przeglądarek.

Taki obiekt jest pusty. Co nam po pustym obiekcie? Co prawda możemy zrobić tak:
var obj = {};

obj.a = 1;

obj.b = 'Ala ma kota';

obj.func = function() {

    alert('Func');

}


lub:

var obj = {'a' : 1, 'b' : 'Ala ma kota'};


Jest to jednak zapis dosyć niewygodny i długi. Czy nie da się tego zrobić
łatwiej? Owszem - da. Stwórzmy sobie funkcję:

function createObject(a, b) {

    var obj = {};

    obj.a = a;

    obj.b = b;

    obj.func = function() {

        alert('Func');

    }


    return obj;

}

var MyObj = createObject(1, 'Ala ma kota'); // do zmiennej MyObj zostaje przypisany obiekt


Teraz pod nazwą MyObj znajduje się obiekt posiadający 2 pola: a, b. Pola te mają ustawioną wartość przy wypełnianiu obiektu w funkcji. W obiekcie znajduje się także metoda o nazwie func. Wszystkie pola obiektu są publiczne, zatem można się do nich odwoływać w taki sposób:

var MyObj = createObject(1, 'Ala ma kota'); // do zmiennej MyObj zostaje przypisany obiekt

alert(MyObj.a);

alert(MyObj.b);

MyObj.a = 10;

MyObj.b = "Ola ma psa";

alert(MyObj.a);

alert(MyObj.b);


Ten sposób jest bardzo podobny do wzorca modułu.