首页 > 试题广场 >

js的new操作符做了哪些事情

[问答题]

js的new操作符做了哪些事情

new一个对象时,共经历了四个阶段:

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


1. 创建一个空对象

var obj = new Object();

2. 设置原型链

obj.__proto__ = Func.prototype;

3. 用obj调用Func,获得执行结果

var result = Func.call(obj);

4. 判断Func返回值类型,如果是引用类型,就返回构造函数Func return的对象,如果是值类型,就返回拥有Func原型链的空对象obj

if(typeof(result)=="object"){
  func = result;
}else{
  func = obj;
}
编辑于 2022-03-09 08:43:41 回复(0)

<p>new操作符新建一个空对象,这个对象原型指向构造函数的prototype。执行构造函数后返回这个对象</p>

编辑于 2020-06-03 21:38:35 回复(0)
1在内存中创建一个新的空对象。
2让this指向这个新的对象,将空对象的__proto__属性指向构造函数的原型(prototype)。
3执行构造函数里面的代码,给这个新对象添加属性和方法。
4返回这个新对象(所以构造函数里不需要return)。
发表于 2022-02-07 11:04:00 回复(0)