详细讲解new一个对象的过程,含详细constructor, __proto__, prototype 关系图
程序员文章站
2022-04-04 20:57:03
...
new对象:
function Person(name, age) {
this.name = name;
this.age = age;
var person = new Person("anla", 23);
}
new一个对象的四个过程:
1、创建一个空对象
var obj = new Object();
2、让Person中的this指向obj,并执行Person的函数体
Person.call(obj);
3、设置原型链,将obj的__proto__成员指向了Person函数对象的prototype成员对象
obj.__proto__ = Person.prototype;
4、 将初始化完毕的新对象地址,保存到等号左边的变量中
var person = obj;
详细的constructor, proto, prototype 关系图:
图片转载自:https://blog.csdn.net/cc18868876837/article/details/81211729