Before ES6 introduced the `class` keyword in 2015, JavaScript developers used constructor functions and prototype manipulation to implement OOP patterns. This post walks through how to replicate class features without the `class` keyword: creating instances with constructor functions, adding methods via prototype assignment, extending classes using `Object.create` for proper prototype chaining and `instanceof` support, and attaching static methods directly to the function object.
Sort: