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