var a = new A('hi');数组
1.一个新对象被建立。var o = new Object();函数
2.o继承自A.prototype。o._proto_ = A.prototype;
this
3.构造函数A被执行。执行的时候,相应的传参会被传入,同时上下文(this)会被指定为这个新实例。
prototype
4.若是构造函数返回了一个“对象”,那么这个对象会取代整个new
出来的结果,经过new返回实例化的对象。若是构造函数没有返回对象,那么new
出来的结果为步骤1建立的对象,经过new返回函数内返回的对象。ps:通常状况下构造函数不返回任何值,不过用户若是想覆盖这个返回值,能够本身选择返回一个普通对象来覆盖。固然,返回数组也会覆盖,由于数组也是对象。code