new關鍵字執行過程的簡單了解
demo:
//定義構造函數Fn
function Fn(a, b) {
this.a = a;
this.b = b;
this.add = function() {
console.log(a + b);
}
}
//通過關鍵字new建立對象
var fn = new Fn(1, 2)
fn.add() //3
new關鍵字執行過程:
當 new Fn() 時,會建立一個空對象,在堆記憶體中開辟一塊空間來存儲對象執行個體
對象執行個體的原型指向構造函數 Fn() 的 prototype 屬性
構造函數 Fn() 中的 this 關鍵字指向開辟的空間,this 關鍵字向記憶體空間中添加屬性和方法
将對象執行個體指派給變量 fn ,棧記憶體中的變量 fn 指向堆記憶體中開辟的空間,可以操控空間中的資料