Folosind funcția built-in Object () constructor, putem crea obiecte goale generice în zbor. De fapt, dacă vă amintiți din nou la începutul capitolului 1, acesta este exact ceea ce am făcut creând obiectul cody. Să recreăm obiectul Cody.
Mostră: sample69.html
Aici, tot ce facem este să folosim Obiect()
constructor funcția de a crea un obiect generic numit cody. Vă puteți gândi la Obiect()
constructor ca tăietor de cookie pentru a crea obiecte goale care nu au proprietăți sau metode predefinite (cu excepția, desigur, a celor moștenite din lanțul prototip).
În cazul în care nu este evident, Obiect()
constructorul este un obiect în sine. Aceasta înseamnă că funcția constructorului se bazează pe un obiect creat din Funcţie
constructor. Acest lucru poate fi confuz. Doar amintiți-vă ca și cum mulțime
constructor, Obiect
Constructorul scuipă pur și simplu obiecte goale. Și da, puteți crea toate obiectele goale pe care le doriți. Cu toate acestea, crearea unui obiect gol precum Cody este foarte diferit de crearea unei funcții de constructor proprii cu proprietăți predefinite. Asigurați-vă că înțelegeți că cody este doar un obiect gol bazat pe Obiect()
constructor. Pentru a valorifica cu adevărat puterea JavaScript, va trebui să învățați nu numai cum să creați containere goale de obiecte Obiect()
, dar și cum să vă construiți propria "clasă" de obiecte (Persoană()
) ca Obiect()
constructor funcția în sine.
Obiect()
Parametrii Obiect()
funcția constructorului ia un parametru opțional. Parametrul este valoarea pe care doriți să o creați. Dacă nu furnizați niciun parametru, atunci a nul
sau nedefinit
valoarea va fi asumată.
Mostră: sample70.html
Dacă există o valoare suplimentară nul
sau nedefinit
este trecut la Obiect
constructor, valoarea trecută va fi creată ca un obiect. Deci, teoretic, putem folosi Obiect()
constructor pentru a crea oricare dintre celelalte obiecte native care au un constructor. În exemplul următor, fac doar asta.
Mostră: sample71.html
Obiect()
Proprietăți și metode Obiect()
Obiectul are următoarele proprietăți (fără a include proprietățile și metodele moștenite):
Proprietăți (Object.prototype;
):
prototip
Obiect()
Proprietățile și metodele instanțeiObiect()
obiectele obiect au următoarele proprietăți și metode (nu include proprietățile și metodele moștenite):
Proprietăți de instanță (var myObject = ;
myObject.constructor;
):
constructor
Metode de instanță (var myObject = ;
myObject.toString ();
):
hasOwnProperty ()
isPrototypeOf ()
propertyIsEnumerable ()
toLocaleString ()
toString ()
valoarea()
Lanțul prototip se termină cu Object.prototype
, și astfel toate proprietățile și metodele Obiect()
sunt moștenite de toate obiectele JavaScript.
Obiect()
Obiectele care utilizează "Literali de obiecte"Crearea unui "obiect literal" presupune instantierea unui obiect cu sau fara proprietati folosind bretele (var cody = ;
). Amintiți-vă la începutul capitolului 1 când am creat obiectul cody unic și apoi am dat proprietățile obiectului cody folosind notația punctului? Să facem din nou asta.
Mostră: sample72.html
Observați în codul care creează cody
obiect și proprietățile sale au luat cinci declarații. Folosind notația literală a obiectului putem exprima același lucru cody
obiecte într-o declarație.
Mostră: sample73.html
Folosind notația literală ne dă posibilitatea de a crea obiecte, inclusiv proprietăți definite, cu un număr mai mic de coduri și de a încapsula vizual datele corelate. Observați utilizarea :
și ,
operatorii într-o singură declarație. Aceasta este, de fapt, sintaxa preferată pentru crearea obiectelor în JavaScript din cauza terseness și lizibilitatea.
Ar trebui să știți că numele proprietăților pot fi specificate și ca șiruri de caractere:
Mostră: sample74.html
Nu este necesar să specificați proprietățile ca șiruri de caractere, cu excepția cazului în care numele proprietății:
clasă
).Atent! Ultima proprietate a unui obiect nu trebuie să aibă o virgulă care să se situeze. Aceasta va cauza o eroare în unele medii JavaScript.
Object.prototype
Obiect()
constructor funcția în JavaScript este special, ca ei prototip
proprietatea este ultima oprire din lanțul prototip.
În următorul eșantion, măresc numărul Object.prototype
cu foo
proprietate și apoi să creeze un șir și să încerce să acceseze foo
proprietate ca și cum ar fi fost o proprietate a instanței de șir. Din moment ce myString
instanta nu are a foo
proprietatea, lanțul prototip lansează și valoarea este căutată String.prototype
. Nu este acolo, așa că următorul loc să arătați este Object.prototype
, care este locația finală JavaScript va căuta o valoare a obiectului. foo
valoarea este găsită pentru că am adăugat-o, deci returnează valoarea lui foo
.
Mostră: sample75.html
Atent! Orice adăugat la Object.prototype
va apărea într-o pentru in
buclă și lanțul prototip. Din acest motiv, sa spus că se schimba Object.prototype
este interzis.