當你要建立某一個類的實例的時候,會用到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