object-oriented JavaScript is somewhat redundant, as the JavaScript language is completely object-oriented and is impossible to use otherwise. Objects are the foundation of JavaScript. Virtually everything within the language is an object. Much of the power of the language is derived from this fact. Design patterns are advanced object-oriented solutions to commonly occurring software problems. Patterns are about reusable designs and interactions of objects.