Summary
In this chapter, we've explored concepts of modular design, ES6 modules, and their use with node. The principles of object-oriented design can be useful when designing programs that have several layers of modules composed as a complex system.
ES6 classes allow us to create classes much more easily than previous versions of JavaScript. These classes can be built by using the extends
keyword. This allows for layers of complexity where more complex objects can be built on top of simple ones and so on.
We also saw how the new ES6 WeakMap
type allows us to create private variables. This pattern limits the number of errors in modules that will be used by others. For example, by requiring properties to be changed, we can check the format and value before allowing the change. This was the case with the light example, where we wanted to check that state
was a Boolean value before allowing it to be set. We did this by creating getter and setter methods for each private variable...