使用new来调用函数,或者说发生构造函数调用时,会自动执行下面的操作。
- 创建(或者说构造)一个全新的对象
- 这个新对象会被执行
[[prototype]]
连接 - 这个新对象会绑定到函数调用的this
- 如果函数没有返回其他对象,那么new表达式中的函数调用会自动返回这个新对象
注意第四点,通过两个小栗子来巩固一下。
function Person(name) {
this.name = name
return name;
}
let p = new Person('Tom');
// 实例化Person过程中,Person返回什么(或者p等于什么)?
function Person(name) {
this.name = name
return {}
}
let p = new Person('Tom');
// 实例化Person过程中,Person返回什么(或者p等于什么)?