REGISTER











Constructori
#1
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

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ție
Constructorul în sine este stocat în slotul special de constructor. Astfel
Code:
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ț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.
Reply



Powered by MyBB All rights reserved
Developed with for FASTCS 2011 - 2024 FASTCS