Chapter 3. Classes, Symbols, Objects, and Decorators
Now that weâve covered the basic improvements to the syntax, weâre in good shape to take aim at a few other additions to the language: classes and symbols. Classes provide syntax to represent prototypal inheritance under the traditional class-based programming paradigm. Symbols are a new primitive value type in JavaScript, like strings, Booleans, and numbers. They can be used for defining protocols, and in this chapter weâll investigate what that means. When weâre done with classes and symbols, weâll discuss a few new static methods added to the Object
built-in in ES6.
3.1 Classes
JavaScript is a prototype-based language, and classes are mostly syntactic sugar on top of prototypal inheritance. The fundamental difference between prototypal inheritance and classes is that classes can extend
other classes, making it possible for us to extend the Array
built-inâsomething that was very convoluted before ES6.
The class
keyword acts, then, as a device that makes JavaScript more inviting to programmers coming from other paradigms, who might not be all that familiar with prototype chains.
3.1.1 Class Fundamentals
When learning about new language features, itâs always a good idea to look at existing constructs first, and then see how the new feature improves those use cases. Weâll start by looking at a simple prototype-based JavaScript constructor and then compare that with the newer classes syntax in ES6.
The following ...
Get Practical Modern JavaScript now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.