a JavaScript class is a blueprint for creating objects. Egy osztály olyan adatokat és funkciókat tartalmaz, amelyek manipulálják az adatokat.
Eltérően más programozási nyelvektől, mint a Java és C++, JavaScript osztályok szintaktikai cukor felett prototípus öröklés. Más szóval, az ES6 osztályok csak speciális funkciók.
az ES6 előtti osztályok
az ES6 előtt a JavaScriptnek nem volt fogalma az osztályokról., Egy osztály utánozásához gyakran használtunk konstruktor funkciót, amint az a következő példában látható:
kimenet:
hogyan működik.
először hozza létre aPerson
konstruktorfüggvényt, amelynek tulajdonság nevename
. AgetName()
függvény aprototype
függvényhez van rendelve, így aPerson
Típus minden példánya megosztható.
ezután hozzon létre egy új példányt a Person
típusból a new
operátor segítségével., A john
objektum tehát a Person
és Object
egy példánya prototípus öröklés útján.,
Az alábbi állítások használja a instanceof
üzemeltető ellenőrizze, hogy a john
egy példányát a Person
vagy Object
típus:
Code language: JavaScript (javascript)
ES6 osztály nyilatkozat
ES6 bevezetett egy új szintaxist, kijelentette, hogy az osztály, mint ez a példa mutatja:
Code language: JavaScript (javascript)
Ez a Person
class úgy viselkedik, mint a Person
írja be az előző példában. A konstruktor funkció használata helyett azonban a class
kulcsszót használja.,
aPerson
osztályban aconstructor()
egy példány tulajdonságait inicializálhatja. A JavaScript automatikusan meghívja a constructor()
metódust, amikor az osztály objektumát példányosítja.
a következő létrehoz egy új Person
objektumot, amely automatikusan a constructor()
Person
osztály:
Code language: JavaScript (javascript)
a Person
osztály egyik módszere., Mint egy konstruktor függvény, akkor hívja a módszerek egy osztály a következő szintaxis használatával:
Code language: CSS (css)
példa:
Code language: JavaScript (javascript)
ellenőrizze a tény, hogy az osztályok speciális funkciók, használja a typeof
üzemeltetője, hogy ellenőrizze a típus a Person
osztály.
Code language: JavaScript (javascript)
function
a várakozásoknak megfelelően.,
a john
objektum a Person
és Object
típusok:
Code language: JavaScript (javascript)
class vs.Custom type
annak ellenére, hogy hasonlóságok vannak egy osztály és egy egyedi típus között, amelyet egy konstruktor függvény definiál, van néhány fontos különbség.
Első, osztály nyilatkozatok nem emelhető, mint a függvény nyilatkozatok.
például, ha a következő kódot a Person
osztály deklarációs szakasz fölé helyezi, akkor ReferenceError
.,
Code language: JavaScript (javascript)
hiba:
Code language: JavaScript (javascript)
második, az osztályon belüli összes kód automatikusan szigorú módban fut. És nem változtathatsz ezen a viselkedésen.
harmadik, osztály módszerek nem számszerűsíthető. Ha konstruktor funkciót használ, akkor a Object.defineProperty()
metódust kell használnia, hogy egy tulajdonság nem számolható legyen.
negyedszer, ha az osztály konstruktort a new
operátor nélkül hívjuk, az alábbi példában látható hibát eredményez.,
Code language: JavaScript (javascript)
hiba:
Code language: JavaScript (javascript)
összefoglaló
- JavaScript használata
class
kulcsszó új osztályt deklarál. - a
class
a deklaráció szintaktikai cukor a prototípusos öröklés felett, további fejlesztésekkel.
- hasznos volt ez a bemutató ?
- YesNo
Leave a Reply