Javascript prototip - modul în care moștenirea pe bază de prototip în JavaScript

Ce este un prototip (prototip)?

Prototip - este un obiect care moștenește de la Insula Sf alte obiecte.

Orice obiect poate fi un prototip?

În ce obiectele au prototipuri?

În mod implicit, fiecare obiect are un prototip. Prototipul este un obiect, asa ca el are un prototip.

Stai puțin! Încă o dată - ceea ce este obiectul?

Ai spus că fiecare obiect are un prototip. Dar dacă am scrie (<>) .prototype, am nedefinit. Care-i problema?

Deci, bine, dar de tip primitiv fals, atunci de ce fals .__ se întoarce proto__.

Deci, vreau să folosesc moștenire prototip. Ce ar trebui să fac?

Hai să cădem de acord că noi nu vrem să utilizeze prototipuri pentru a moșteni proprietățile unui obiect dintr-o alta. În final, acest lucru se poate face pur și simplu prin adăugarea de proprietăți la obiectul țintă. Cu toate acestea, dacă, de exemplu, doresc să moștenească toate proprietățile au un anumit obiect folosit de multe ori, atunci putem face ceva de genul:

Beneficiile reale ale utilizării prototipurilor se produce atunci când mai multe obiecte moștenesc unul și același prototip. Atunci nu trebuie să vă faceți griji cu privire la copierea proprietăților pentru fiecare obiect de creare.

Aici este folosit doar de designer?

Da. Designer oferă un mecanism pentru atribuirea unui prototip comun al obiectului creat.

Înainte de a vă aduce Priver am nevoie să înțeleg, bine înseamnă constructor.prototype proprietate?

Prin urmare, definiția este după cum urmează. proprietate funcția de prototip este un obiect care va fi atribuit ca un prototip pentru toate obiectele create cu ajutorul acestei funcții ca un constructor.

Aceasta este, proprietatea obiect funcția de prototip nu este prototipul ei:

Acesta este exemplul proverbiala utilizării de prototipuri:

Se răcește! Deci, dacă schimb constructor de prototip, toate obiectele create vor avea o pasta care constructorul aceste modificări?

Este adevărat, dar este necesar să se clarifice ... Dacă aș schimba eu obiect prototip care se face referire de proprietatea prototip al unei funcții, atunci răspunsul este - da. Acest lucru este adevărat, deoarece __proto__ obiect se referă la obiectul care a invocat funcție definită de prototip la crearea obiectului. Cu toate acestea, dacă înlocuiți proprietatea prototip în sine, dându-i un obiect diferit, obiecte apoi, desigur, au creat deja aceste modificări nu sunt văzute. Ei nu mai indiferent unde referințele St. prototip.

Care este prototipul implicit?

Este un obiect cu un singur constructor lea de legare, ceea ce indică caracteristica:

Cum operatorul instanceof în moștenirea prototip?

Exprimarea unei instanceof A înseamnă că legarea prototip (obiectul la care punctele) este în obiect prototip, cu un lanț. Asta este, ne putem păcăli cu ușurință instanceof (sau ea?):

Ce este vorba - lanțul de prototip?

Fiecare obiect are un prototip, iar prototipul, precum și subiectul, de asemenea, are un prototip. Această secvență se numește un lanț de prototipuri și prototipuri. Calul fiecare lanț este întotdeauna standard obiect obiect prototip. Aici este prototipul obiectului prototip standard, va fi plecat. Aceasta este singura excepție de la regula generală:

moștenire Prototip funcționează în mod implicit. Atunci când un anumit obiect zapraiivaetsya legarea foo, acesta este mai întâi verificat direct de obiect. Apoi, în cazul în care nu a fost găsit de legătură, acesta este privit în sus în obiectul prototip, și așa mai departe până la Sfânta, fie nu este găsit, sau returnează o valoare nedefinită.

Stabilirea proprietăților unui obiect nu afectează prototipul. Valoarea este scrisă direct în obiectul activ. Pentru a schimba este un prototip, este necesar să se facă referire în mod explicit.

articole similare