new關鍵字建立對象的過程

題目解析

先看代碼函數

var Func=function(){
};
var func=new Func ();

new共通過了4幾個階段this

一、建立一個空對象
var obj=new Object();
二、設置原型鏈
obj.__proto__= Func.prototype;
三、讓Func中的this指向obj,並執行Func的函數體。
var result =Func.call(obj);
四、判斷Func的返回值類型:

若是是值類型,返回obj。若是是引用類型,就返回這個引用類型的對象。prototype

if (typeof(result) == "object"){
  func=result;
}
else{
    func=obj;;
}
相關文章
相關標籤/搜索