What actually happens under the hood when we create a class in JS ?

JavaScript classes introduced in ECMAScript 2015 are syntactical sugar over JavaScript's existing prototype-based inheritance. So JS is looking more like other OOP languages, but what actually happens under hood? In this article I would like to dig deep into JavaScript and try to explain with code  examples and console logs.

Let's declare a class.