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运算符原理)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.