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

new共经过了4个阶段

1.创建一个空对象

var obj=new Object();

2.设置原型链

把 obj 的__proto__ 指向构造函数Func的原型对象 prototype,此时便建立了 obj 对象的原型链:

obj->Func.prototype->Object.prototype->null

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

var result =Func.call(obj);

4、判断Func的返回值类型:

如果无返回值 或者 返回一个非对象值,则将 obj 作为新对象返回;否则会将 result 作为新对象返回。

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

 

相关文章:

  • 2022-12-23
  • 2021-08-02
  • 2022-12-23
  • 2022-12-23
  • 2021-12-12
  • 2022-02-04
  • 2021-09-01
  • 2022-12-23
猜你喜欢
  • 2021-07-11
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-27
  • 2021-08-25
  • 2022-12-23
相关资源
相似解决方案