当你要创建某一个类的实例的时候,会用到 new 操作符。但是这个过程到底发生了什么呢?
1、创建了一个新对象。(不知道可不可以解释为从堆内存里开辟了一块内存
2、将构造函数的作用域赋值给了新对象,也就是说谁被 new 了,this 就指向谁。
假设有一个类 Person,创建它的实例 louis
function Person(name){this.name = name}
Person.prototype.sayName= function(){console.log(this.name)
}
let louis = new Person('louis') // 此时的 this 指向 louis
louis.sayName() //louis
3、执行了构造函数中的代码,也就是执行了上面 Person 里的代码
4、返回新对象 如果没有另外设置 return 的值即返回了 louis,否则返回你重新设置的对象