题目解析

先看代码

var Func=function(){
};
var func=new Func ();
登录后复制

new共经过了4几个阶段

1、创建一个空对象
var obj=new Object();
登录后复制
2、设置原型链
obj.__proto__= Func.prototype;
登录后复制
3、让Func中的this指向obj,并执行Func的函数体。
var result =Func.call(obj);
登录后复制

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

如果是值类型,返回obj。如果是引用类型,就返回这个引用类型的对象。

if (typeof(result) == "object"){  func=result;}else{    func=obj;;}
登录后复制
相关推荐:

使用隐藏的new来创建对象

php中如何使用new StdClass()创建空对象?

以上就是new关键字创建对象的4个阶段的详细内容,更多请关注Work网其它相关文章!

09-06 11:53