完整原型链结构

代码图解

var o = {
    appendTo: function (_dom) {}
};
function DivTag() {}
DivTag.prototype = o;
var tag = new DivTag();

clipboard.png

绘制并分析完整原型链结构

function Person() {}
var p = new Person();
  • p -> Person.prototype -> Object.prototype -> nullc++

  • 对于Object.prototype又会牵扯出Object构造函数
  • Object构造函数:o -> Object.prototype -> null
  • PersonObject能够做为构造函数看待,也能够做为对象看待,看成为对象看待时,他们就是Function的实例
  • PersonFunction的实例,继承自Function.prototype
  • Object也是Function的实例,继承自Function.prototype
  • Function也是Function建立出来的(这个说法是推导出来的,虽然看起来有点像无稽之谈,可是Function确实是一个特殊的状况,是JavaScript中惟一的特例)app

  • Function.prototype -> Object.prototype -> null

clipboard.png
Person原型对象,Function原型对象,Object原型对象,这三个原型对象没有画是由谁建立出来的,没必要要纠结这三个对象是谁建立出来的,这些是由底层c++实现的,若是说非要画的话,颇有可能建立它们就是Objectdom

相关文章
相关标签/搜索