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
class
cuvinte cheie declară o nouă clasă. - a
class
declarația este zahăr sintactic peste moștenire prototip cu îmbunătățiri suplimentare.
- a fost acest tutorial util ?
- YesNo
Leave a Reply