Avatar ·

Que fait le mot-clé `new` en JavaScript ? Expliquez avec des exemples

Bonjour à tous ! Je viens de commencer à apprendre JavaScript et je suis tombé sur le mot-clé `new`. Honnêtement, je suis confus. J'ai l'impression de comprendre qu'il est lié à la création d'objets, mais comment il fonctionne exactement n'est pas clair. Par exemple, je vois ce code : ```javascript function Person(name) { this.name = name; this.sayHello = function() { console.log('Bonjour, je m\'appelle ' + this.name); }; } const user = new Person('Anna'); user.sayHello(); // Bonjour, je m'appelle Anna ``` Mais si j'écris sans `new` : ```javascript const user = Person('Anna'); console.log(user); // undefined ``` Pourquoi cela se produit-il ? Que fait exactement `new` en interne ? J'ai entendu dire qu'il lie `this` d'une certaine manière, mais je ne comprends pas les détails. J'ai aussi vu que dans certains tutoriels, on écrit les fonctions constructeurs avec une majuscule, mais pas toujours. Et j'ai aussi entendu parler de `prototype` — est-ce lié à `new` ? Expliquez, s'il vous plaît, étape par étape, ce qui se passe quand on écrit `new SomeFunction()`. Et existe-t-il des alternatives ?