this part here is supposed to solve the problem with people forgetting new:
if (!(this instanceof User)) {
return new User(name, lastname);
}
I'm pointing out that this doesn't work if you extend the class.The point is - don't forget `new` because tricks like this will not save you, in fact this is arguably worse - you think you're getting a `Person` but you get a `User` with no immediate errors, at least if you forget `new` then you'll get an error straight away in strict mode.