new操作符时具体是干了些什么

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

new过程的4个步骤:

(1)创建一个空对象

var obj =new object();

(2)设置原型链

obj.proto = Func.prototype;

(3)让Func中的this指向obj,并执行函数体

var result = Func.apply(obj);

(4)判断Func返回值类型,如果是值类型,返回obj;如果是引用类型,就返回这个引用类型的对象。

if(typeof(result) == 'object') {
 func = result;
}
else{
 func = obj;
}

猜你喜欢

转载自blog.csdn.net/prince_fmx/article/details/79226128