new 一個對象的過程發生了什麼

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

相關文章
相關標籤/搜索