04-08-2013, 08:16 AM
Funcțiile Constructor atribui pur și simplu valori pentru sloturi de un obiect nou creat. Valorile pot fi date sau alte funcții.
Exemplu: Manipularea unui obiect
Constructorul în sine este stocat în slotul special de constructor. Astfel
Funcțiile sunt obiecte in sine, care pot fi utilizate pentru a produce un efect similar cu "proprietăți statice" (folosind terminologia C++ / Java), așa cum se arată mai jos.
(Funcția obiect are, de asemenea, o proprietate prototip speciala, după cum sa discutat în secțiunea Moștenire de mai jos.)
Ștergerea obiectului este rareori folosita ca motor de scriptare, va colecta obiecte gunoi la care nu se mai face referire.
Exemplu: Manipularea unui obiect
Code:
function MyObject ( attributeA , attributeB ) {
this . attributeA = attributeA ;
this . attributeB = attributeB ;
}
MyObject. staticC = "blue" ; // On MyObject Function, not obj
alert ( MyObject. staticC ) ; // blue
obj = new MyObject ( 'red' , 1000 ) ;
alert ( obj. attributeA ) ; // red
alert ( obj [ "attributeB" ] ) ; // 1000
alert ( obj. staticC ) ; // undefined
obj. attributeC = new Date () ; // add a new property
delete obj. attributeB ; // remove a property of obj
alert ( obj. attributeB ) ; // undefined
delete obj ; // elimina întregul obiect (foarte rar folosit)
alert ( obj. attributeA ) ; // aruncă o excepțieCode:
function Foo () { }
// Utilizarea de "noi", sloturi de prototip și constructor
(de exemplu,
// Foo.prototype = {}; // va seta constructorul la obiect
x = new Foo () ;
// Mai sus este aproape echivalent cu
y = { } ;
y. constructor = Foo ;
y. constructor () ;
// except
x. constructor === y. constructor // adevărat
x instanceof Foo // adevărat
y instanceof Foo // fals
z = new { constructor : Foo } . constructor () ;
z instanceof Foo // adevărat.
// Modificarea Foo.prototype după "new", a fost apelat, se poate schimba
// instanceof results, până când este schimbat din nou, cu o valoare identică(Funcția obiect are, de asemenea, o proprietate prototip speciala, după cum sa discutat în secțiunea Moștenire de mai jos.)
Ștergerea obiectului este rareori folosita ca motor de scriptare, va colecta obiecte gunoi la care nu se mai face referire.