o clasă JavaScript este un plan pentru crearea de obiecte. O clasă încapsulează date și funcții care manipulează datele.spre deosebire de alte limbaje de programare, cum ar fi Java și C++, clasele JavaScript sunt zahăr sintactic peste moștenirea prototipică. Cu alte cuvinte, clasele ES6 sunt doar funcții speciale.
clase înainte de ES6 revizuit
înainte de ES6, JavaScript nu a avut concepte de clase., Pentru a imita o clasă, am folosit adesea o funcție de constructor așa cum se arată în următorul exemplu:
Output:
cum funcționează.
în Primul rând, a crea Person ca o funcție constructor care are o proprietate pe numele name. getName() funcția este atribuit prototype astfel încât să poată fi împărtășite de către toate instanțele Person tip.
apoi, creați o nouă instanță a tipului Person folosind operatorul new., john obiect, prin urmare, este un exemplu de Person și Object prin prototypal moștenire.,
următoarele afirmații folosi instanceof operator pentru a verifica dacă john este un exemplu de Person și Object tip:
Code language: JavaScript (javascript)
ES6 declarație de clasă
ES6 introdus un nou sintaxa pentru declararea unei clase așa cum se arată în acest exemplu:
Code language: JavaScript (javascript)
Person clasa se comportă ca și cum Person tip în exemplul anterior. Cu toate acestea, în loc să utilizeze o funcție de constructor, utilizează cuvântul cheie class.,
În Person clasa constructor() este locul unde puteți inițializa proprietăți de o instanță. JavaScript apelează automat metoda constructor() atunci când instantiați un obiect al clasei.
următoarele creează un nou Person obiect, care va apela în mod automat constructor() de Person clasa:
Code language: JavaScript (javascript)
getName() este numit o metodă de Person clasa., Ca un constructor funcție, puteți apela metode ale unei clase folosind următoarea sintaxă:
Code language: CSS (css)
De exemplu:
Code language: JavaScript (javascript)
Pentru a verifica faptul că sunt clase speciale de funcții, puteți folosi typeof operatorul să verificați tipul de Person clasa.
Code language: JavaScript (javascript)
Se revine function cum era de așteptat.,
john obiect este, de asemenea, un exemplu de Person și Object tipuri:
Code language: JavaScript (javascript)
Class vs de tip Particularizat
în Ciuda asemănărilor între o clasă și un tip particularizat definit printr-o funcție constructor, există unele diferențe importante.
în primul rând, declarațiile de clasă nu sunt ridicate ca declarațiile de funcții.
De exemplu, dacă plasați următorul cod de mai sus Person declarație de clasă secțiune, veți obține un ReferenceError.,
Code language: JavaScript (javascript)
Eroare:
Code language: JavaScript (javascript)
în al Doilea rând, tot codul din clasa execută în mod automat în modul strict. Și nu poți schimba acest comportament.în al treilea rând, metodele de clasă nu sunt enumerabile. Dacă utilizați o funcție de constructor, trebuie să utilizați metoda Object.defineProperty() pentru a face o proprietate non-enumerabilă.
În al patrulea rând, apelarea constructorului de clasă fără operatorul new va duce la o eroare așa cum se arată în exemplul următor.,
Code language: JavaScript (javascript)
Eroare:
Code language: JavaScript (javascript)
Sumar
- Utilizarea JavaScript
classcuvinte cheie declară o nouă clasă. - a
classdeclarația este zahăr sintactic peste moștenire prototip cu îmbunătățiri suplimentare.
- a fost acest tutorial util ?
- YesNo
Leave a Reply