介绍new一个对象的过程,示例代码如下:
function ClassA(){
this.name = "123"
}
var p = new ClassA();
1、 创建空对象;
var obj = {};
2、 设置新对象obj的constructor属性为构造函数的名称,设置新对象obj的__proto__属性指向构造函数的prototype对象;
obj.proto = ClassA.prototype;
3、 使用新对象调用函数,函数中的this被指向新实例对象:
ClassA.call(obj); //通过 call(),obj能够使用属于另一个对象的方法。
4、 将初始化完毕的obj返回,赋给变量p