当你要创建某一个类的实例的时候,会用到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,否则返回你重新设置的对象
发表回复