new的原理

先來個構造函數的例子:javascript

function  Prince(name,age){

this.name=name;
this.age=age;
}

var prince=new Prince("charming",25);

使用new關鍵字實例化的時候發生了什麼?java

var prince=new Prince("charming",25);
1.第一步,建立一個空對象。
var prince={}
2.第二步,將構造函數Prince()中的this指向新建立的對象prince。
3.第三步,將prince的_proto_屬性指向Prince函數的prototype,建立對象和原型間關係
4.第四步,執行構造函數Prince()內的代碼。函數

 

附上部分說明:每一個函數function都有一個prototype,即原型。同時,每一個對象都有一個_proto_,可成爲隱式原型。this

而且每一個對象都有一個_proto_屬性,指向建立該對象的函數的prototype。spa

相關文章
相關標籤/搜索