My questions are: is the "doSomething" method created every time we create this object?
No. The syntax class more or less like syntactic sugar for a constructor function + prototype. That is, the result is (almost) equivalent:
function User() {} User.prototype.doSomething = function() { };
Look at the result Chrome produces:

However, I have no doubt in the right way to achieve the same effect in ES6.
As said, class does this for you. The whole point of introducing a class is to simplify the creation of design functions and customization methods for prototype (hence syntactic sugar).
If you want to know more, take a look
MDN - Classes
JavaScript classes introduced in ECMAScript 6 are syntactic sugar compared to existing JavaScript prototypes. The class syntax is not representing a new object-oriented inheritance model for JavaScript. JavaScript classes provide a much simpler, more understandable syntax for creating objects and handling inheritance.
YDKJS - ES6 and Beyond
source share