Application of Objects in ECMAScript

Ang paglikha at pagpatay ng bagay ay nangyayari sa pagpapatupad ng JavaScript, ang pag-unawa sa kahulugan ng ganitong paradigma ay napakahalaga sa pag-unawa ng buong wika.

Pagsasalita at Pagtatalaga

Ang paraan ng paglikha ng bagay ay gumamit ng keyword na new kasama ang pangalan ng klase na itininalaga:

var oObject = new Object();
var oStringObject = new String();

Ang unang linya ng kodigo ay nilikha ng isang instance ng klase Object, at inilagay sa variable na oObject. Ang ikalawang linya ng kodigo ay nilikha ng isang instance ng klase String, inilagay sa variable na oStringObject. Kung walang argumento ang constructor, hindi kailangan ang mga pagsasakop. Kaya maaaring ilarawan ang mga ito sa sumusunod na paraan:

var oObject = new Object;
var oStringObject = new String;

Pagtatalaga ng Bagay

Sa mga nakaraang kabanata, ipinakilala namin angKonsepto ng Referensya ng BagaySa ECMAScript, hindi maaaring aksesin ang pisikal na representasyon ng bagay, makikita lamang ang pagtatalaga sa bagay. Bawat paglikha ng bagay, ang inilalagay sa variable ay ang pagtatalaga sa bagay, hindi ang bagay mismo.

Pinawalang-bisang Bagay

ECMAScript ay may garbage collection routine, ibig sabihin hindi kailangan magpatay ng mga bagay upang malaya ang memory. Kapag walang mas maging pagtatalaga sa bagay, sinasabing ang bagay ay pinawalang-bisa (dereference). Kapag pinapatakbo ang garbage collection routine, lahat ng pinawalang-bisang bagay ay pinapatay. Bawat paglilitis ng function, ang garbage collection routine ay papatakbo, naglalaya ng lahat ng lokal na variable, at sa ilang ibang hindi masasagot na sitwasyon, ang garbage collection routine ay papatakbo din.

Papakabit ang lahat ng sanggunian ng obhektong sa null, upang sapilitang mapawalang-bisa ang obhektong. Halimbawa:

var oObject = new Object;
// Gawa ng isang bagay sa obhektong dito
oObject = null;

Kapag itinakda ang variable na oObject bilang null, walang pinagmulan ng sanggunian sa unang obhektong na itinayo. Ito ay nangangahulugan na kapag muling pinalakad ang programang panghiganti ng walang-lugod na lugar, ang obhektong ay maaaring mapapawalang-bisa.

Pagkatapos gamitin ang isang obhektong, iabot ito kapag pinapawalang-bisa, para malayaan ang kalihim na lugar, ito ay isang magandang kasanayan. Ito ay nagsasigurado rin na walang ginagamit na hindi na nakakita ng obhektong, upang maiwasan ang pagkakaroon ng pagkakamali sa disenyo ng programa. At, ang lumang browser (tulad ng IE/MAC) ay walang kumpletong programang panghiganti ng walang-lugod na lugar, kaya ang obhektong ay maaaring hindi maayos na mapapawalang-bisa kapag inalis ang pahina. Ang pagpawalang-bisa ng obhektong at lahat ng kanyang katangian ay ang pinakamagandang paraan upang matiyak ang tamang paggamit ng kalihim na lugar.

Babala:Mag-ingat kapag pinapawalang-bisa ang lahat ng sanggunian ng obhektong. Kapag mayroon ng dalawang o higit pang sanggunian ang isang obhektong, upang maayos na mapawalang-bisa ang obhektong, dapat na itong lahat ng sanggunian ay itong itinatag sa null.

Maagang pagkakabit at Huling pagkakabit

Ang pagkabit (binding) ay ang paraan na magkakasamang magkakabit ang interface ng obhektong at ang obhektong na isang instance.

Ang maagang pagkakabit (early binding) ay nangangahulugan na ang mga katangian at mga paraan ng obhektong ay naipaglalagay bago mag-eksaktong obhektong, sa gayon ang compiler o interpreter ay makakabuo ng maagang machine code. Kapag may maagang pagkakabit sa mga wika tulad ng Java at Visual Basic, makakagamit ang IntelliSense (ang paraan na nagbibigay ng listahan ng mga katangian at mga paraan ng obhektong sa mga tagapag-gawa) sa paraanang panggawa. Ang ECMAScript ay hindi malaking uri ng wika, kaya hindi sumusuporta sa maagang pagkakabit.

Sa kabilang banda, ang huling pagkakabit (late binding) ay nangangahulugan na ang compiler o interpreter ay hindi nakakaalam ng uri ng obhektong sa panahon ng pagpatakbo. Kapag ginagamit ang huling pagkakabit, hindi kailangan suriin ang uri ng obhektong, lamang suriin kung ang obhektong ay sumusuporta sa mga katangian at mga paraan. Lahat ng mga variable sa ECMAScript ay gumagamit ng huling pagkakabit na paraan. Ito ay nagbibigay-daan para sa malaking bilang ng mga operasyon sa obhektong, walang kapinsalaan.