网上关于js原型链的内容都比较零散、晦涩,所以自己整理一个图,希望对大家有用。
其中,ldh是一个Star的实例,
let ldh = new Star();
ldh本身没有constructor,会顺原型链去找最近的constructor。
在贴一个表格帮助记忆,
创世纪的过程,大概是这样的,只是帮助理解,
1)Function创建了自己,是老祖宗,Function.constructor指向自己,
2)Function创建了Object,Object.constructor指向Function,
3)Object创建了Object.prototype,Object.prototype.__proto__=null,
4)Object创建了Function.prototype,把Function.prototype.__proto__ 指向Object.prototype,
5)Object把Function.__proto__ 指向Function.prototype,
6)Object把Object.__proto__指向Function.prototype