Má JavaScript třídy?

Minulý týden jsme se s přítelem pohádali. Uvedl, že v JavaScriptu neexistují žádné takové věci jako třídy.

Řekl jsem, že tam bylo, jak můžete říct var object = new Object()

Říká, „protože neexistuje žádné slovo class použitý. Není to třída.“

Kdo má pravdu?

Jako poznámku; Pro budoucnost budete potřebovat stručnou implementaci Classy JS:

https://github.com/tnhu/jsface

Upravit:červenec 2017

Třídy JavaScriptu zavedené v ECMAScript 2015 jsou primárně syntaktickým cukrem oproti stávající dědičnosti založené na prototypech JavaScriptu. Syntaxe třídy nezavádí do JavaScriptu nový objektově orientovaný model dědičnosti. Třídy JavaScriptu poskytují mnohem jednodušší a jasnější syntaxi pro vytváření objektů a zacházení s dědičností.

– Třídy Mozilla ES6:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classes

Odpověď

Technicky je tvrzení „JavaScript nemá žádné třídy“ správné.

Přestože je JavaScript objektově orientovaný jazyk, není to jazyk založený na třídách – je to jazyk založený na prototypech. Mezi těmito dvěma přístupy jsou rozdíly, ale protože je možné používat JavaScript jako jazyk založený na třídách, mnoho lidí (včetně mě) často jednoduše označuje funkce konstruktoru jako „třídy“.