Avatar ·

JavaScript 中 `new` 关键字的作用是什么?请举例说明

大家好!我刚开始学习 JavaScript,遇到了 `new` 关键字。老实说,我有点困惑。我似乎明白它与创建对象有关,但具体如何工作并不完全清楚。 例如,我看到这样的代码: ```javascript function Person(name) { this.name = name; this.sayHello = function() { console.log('你好,我叫 ' + this.name); }; } const user = new Person('安娜'); user.sayHello(); // 你好,我叫 安娜 ``` 但如果我不写 `new`: ```javascript const user = Person('安娜'); console.log(user); // undefined ``` 为什么会这样?`new` 内部到底做了什么?我听说它 somehow 绑定了 `this`,但我不理解细节。 另外,我在一些教程中看到构造函数用大写字母开头,但并非总是如此。我还听说过 `prototype`——这和 `new` 有关吗? 请逐步解释当我们写 `new SomeFunction()` 时发生了什么。以及是否有替代方案?