¿Qué hace la palabra clave `new` en JavaScript? Explica con ejemplos
¡Hola a todos! Acabo de empezar a aprender JavaScript y me topé con la palabra clave `new`. Para ser honesto, estoy confundido. Parece que entiendo que está relacionada con la creación de objetos, pero cómo funciona exactamente no me queda claro.
Por ejemplo, veo este código:
```javascript
function Person(name) {
this.name = name;
this.sayHello = function() {
console.log('Hola, me llamo ' + this.name);
};
}
const user = new Person('Ana');
user.sayHello(); // Hola, me llamo Ana
```
Pero si escribo sin `new`:
```javascript
const user = Person('Ana');
console.log(user); // undefined
```
¿Por qué sucede esto? ¿Qué hace exactamente `new` internamente? He oído que de alguna manera vincula `this`, pero no entiendo los detalles.
También he visto que en algunos tutoriales escriben las funciones constructoras con mayúscula, pero no siempre. Y también he oído sobre `prototype` — ¿esto está relacionado con `new`?
Expliquen, por favor, paso a paso, qué sucede cuando escribimos `new SomeFunction()`. ¿Y hay alguna alternativa?