Avatar ·

¿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?