Capul / Obiectul global

Codul JavaScript în sine trebuie să fie conținut într-un obiect. De exemplu, atunci când realizăm cod JavaScript pentru un mediu web browser, JavaScript este conținut și executat în cadrul fereastră obiect. Acest fereastră obiect este considerat a fi "cap obiect", sau, uneori, confuz denumit "obiect global". Toate implementările JavaScript necesită utilizarea unui singur obiect cap.

Obiectul cap este setat de JavaScript în spatele scenei pentru a încapsula codul definit de utilizator și pentru a găzdui codul nativ cu care JavaScript vine preambalat. Codul definit de utilizator este plasat de JavaScript în interiorul obiectului principal pentru execuție. Să verificăm acest lucru, deoarece se referă la un browser web.

În exemplul următor, creez câteva valori JavaScript și verificând că valorile sunt plasate în cap fereastră obiect.

Mostră: sample64.html

 

Trebuie să fiți întotdeauna conștienți de faptul că atunci când scrieți JavaScript, acesta va fi scris în contextul obiectului capului. Materialul rămas din acest capitol presupune că știți că termenul "obiect cap" este sinonim cu "obiect global".

Obiectul cap este cel mai înalt domeniu / context disponibil într-un mediu JavaScript.


Funcțiile globale conținute în obiectul capului

JavaScript este livrat cu câteva funcții predefinite. Următoarele funcții native sunt considerate metode ale obiectului capului (ca într-un browser web, window.parseInt ( '500')). Vă puteți gândi la aceste funcții și metode gata de utilizare (a obiectului principal) oferite de JavaScript.

  • decodeURI ()
  • decodeURIComponent ()
  • encodeURI ()
  • encodeURIComponent ()
  • eval ()
  • isFinite ()
  • isNaN ()
  • parseFloat ()
  • parseInt ()

Obiectul Cap vs. Proprietăți Globale și Variabile Globale

Nu confunda obiectul cap cu proprietăți globale sau cu variabile globale conținute în domeniul global. Obiectul cap este un obiect care conține toate obiectele. Termenul "proprietăți globale" sau "variabile globale" este utilizat pentru a se referi la valori conținute direct în interiorul obiectului capului și nu sunt specificate pentru alte obiecte. Aceste valori sunt considerate globale, deoarece indiferent unde codul se execută în prezent, în ceea ce privește domeniul de aplicare, întregul cod are acces (prin intermediul lanțului de aplicație) la aceste proprietăți și variabile globale.

În exemplul următor, pun un a foo proprietate în domeniul global, apoi accesați această proprietate dintr-un alt domeniu de aplicare.

Mostră: sample65.html

 

Aș fi așezat foo - proprietate în afara sferei globale de aplicare; console.log funcția ar reveni nedefinit. Acest lucru este demonstrat în următorul exemplu de cod.

Mostră: sample66.html

 

În mediul browserului, acesta este motivul pentru care metodele de proprietate globală (de exemplu, window.alert ()) pot fi invocate din orice domeniu de aplicare. Ceea ce aveți nevoie să îndepărtați de la acest lucru este că orice lucru din domeniul de aplicare global este disponibil pentru orice domeniu de aplicare și, astfel, devine titlul de "variabilă globală" sau "proprietate globală.

Există o mică diferență între utilizarea var și nu utilizează var în domeniul global (proprietăți globale vs. variabile globale). Aruncati o privire la acest schimb de stivuire Overflow pentru detalii: Diferenta intre folosirea var si nu folosirea var in JavaScript.


Referindu-se la Obiectul Capului

Există de obicei două moduri de a face referință la obiectul capului. Prima modalitate este de a face referire pur și simplu la numele dat obiectului cap (cum ar fi, într-un browser web acest lucru ar fi fereastră). Cea de-a doua cale este de a folosi acest în domeniul global. Fiecare dintre acestea este detaliată în următorul eșantion.

Mostră: sample67.html

 

În acest exemplu, stocăm în mod explicit o referință la obiectul cap în două variabile care sunt apoi folosite pentru a avea acces la globală foo variabil.


Obiectul capului este implicit și, în mod obișnuit, nu este menționat explicit

De obicei, nu se utilizează o referință la obiectul cap, deoarece este implicită. De exemplu, în mediul browserului window.alert și alerta() sunt, în esență, aceeași declarație. JavaScript completează semnele aici. Deoarece fereastră obiect (obiectul capului) este ultimul obiect verificat în lanțul de aplicare pentru o valoare, fereastră obiect este, în esență, întotdeauna implicit. În exemplul următor, folosim metoda alerta() funcție care este cuprinsă în domeniul global.

Mostră: sample68.html

 

Concluzie

Asigurați-vă că înțelegeți că obiectul cap este implicit chiar și atunci când nu îl includeți în mod explicit, deoarece obiectul cap este ultima oprire din lanțul de aplicare.

Fiind explicit (de exemplu, window.alert () vs. alerta()) costă un pic mai mult în ceea ce privește performanța (cât de rapid rulează codul). Este mai rapid dacă vă bazați numai pe lantul de domeniu și evitați referirea explicită a obiectului capului chiar dacă știți că proprietatea pe care o doriți este inclusă în domeniul global.

Cod