代码图解
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
-
Person
与Object
可以作为构造函数看待,也可以作为对象看待,当作为对象看待时,他们就是Function
的实例 -
Person
是Function
的实例,继承自Function.prototype
-
Object
也是Function
的实例,继承自Function.prototype
Function
也是Function
创建出来的(这个说法是推导出来的,虽然看起来有点像无稽之谈,但是Function
确实是一个特殊的情况,是JavaScript中唯一的特例)-
Function.prototype
->Object.prototype
->null
Person
原型对象,Function
原型对象,Object
原型对象,这三个原型对象没有画是由谁创建出来的,不必要纠结这三个对象是谁创建出来的,这些是由底层c++
实现的,如果说非要画的话,很有可能创建它们就是Object
。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。