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()` 时发生了什么。以及是否有替代方案?