javascript new关键字做了什么

基本过程

1.创建一个空对象
2.空对象的原型指向其构造函数的原型属性
3.执行构造函数,且构造函数的this指向该对象
4.判断构造函数返回值类型,若为值类型,返回空对象本身,若为引用类型,返回这个引用类型

例如,创建Person的实例

function Person(name,age){
    this.name = name;
    this.age = age;
}

var obj = {};
obj.__proto__ = Person.prototype;
var result = Person.call(obj,name,age);
if(typeof(result) == 'object'){
    person = result;
}
else{
    person = obj;
}
return person
原文地址:https://www.cnblogs.com/mengff/p/6912106.html