function _New(fun) {
//首先會創建一個新的空對象
var obj = {};
//然後新的空對象的_proto_指向構造函數的prototype成員對象
obj._proto_ = fun.prototype;
//創建一個引用對象,並且把構造函數(fun)的this指向引用對象
var res = fun.call(obj);
//判斷構造函數執行完的結果返回的是不是一個對象,如果是就返回這個對象;如果不是,就返回新創建的對象(obj)
if (res && typeof (res) == 'object' || typeof (res) == 'function') {
return res;
} else {
return obj;
}
}
js構造函數的new(new運算符原理)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.