new对象:web
function Person(name, age) { this.name = name; this.age = age; var person = new Person("anla", 23); }
new一个对象的四个过程:svg
一、建立一个空对象函数
var obj = new Object();
二、让Person中的this指向obj,并执行Person的函数体this
Person.call(obj);
三、设置原型链,将obj的__proto__成员指向了Person函数对象的prototype成员对象.net
obj.__proto__ = Person.prototype;
四、 将初始化完毕的新对象地址,保存到等号左边的变量中prototype
var person = obj;
详细的constructor, proto, prototype 关系图:
code