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

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

  1. 创建一个空对象
  2. 这个对象的原型指向构造函数的prototype
  3. 绑定this指向,执行构造函数
  4. 确保返回的是对象

new过程一共有四个步骤:

var Func = function() {
};
var func = new Func();
1、创建一个空对象
var obj = new Object();
2、 设置原型链
obj._prototype_ = Func.prototype;
3、让Func中的this指向obj,并执行Func的函数体
var result = Func.call(obj);
4、判断Func的返回值类型
// 如果是值类型,返回obj。如果是引用类型,就返回这个引用类型的对象
if (typeof(result) == 'object') {
    func = result;
} else {
    func = obj;
}

你可能感兴趣的:(js的new操作符做了哪些事情)