完整原型链结构

10次阅读

共计 631 个字符,预计需要花费 2 分钟才能阅读完成。

代码图解

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

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

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

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

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


Person原型对象,Function原型对象,Object原型对象,这三个原型对象没有画是由谁创建出来的,不必要纠结这三个对象是谁创建出来的,这些是由底层 c++ 实现的,如果说非要画的话,很有可能创建它们就是Object

正文完
 0