javascript 函数默认原型与对象实例

javascript function default prototype vs Object instance

Function.prototype和Object实例有什么关系?

function Person() {}
var obj = new Object();
console.dir(Person.prototype);
console.dir(obj);

控制台结果是:

我的问题:

function Person() {}运行后面发生了什么?构造函数如何加到Person.prototype?

这个可以通过查看 EMCAScript 标准来回答

首先,查看 new 关键字,记录在此处:

https://www.ecma-international.org/ecma-262/5.1/#sec-11.2.2

这又会调用内部 [[Construct]] 方法,记录在此处:

https://www.ecma-international.org/ecma-262/5.1/#sec-13.2.2

步骤7:设置F的[[Construct]]内部属性如13.2.2所述