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
c++
Object.prototype
又會牽扯出Object
構造函數Object
構造函數:o
-> Object.prototype
-> null
Person
與Object
能夠做爲構造函數看待,也能夠做爲對象看待,看成爲對象看待時,他們就是Function
的實例Person
是Function
的實例,繼承自Function.prototype
Object
也是Function
的實例,繼承自Function.prototype
Function
也是Function
建立出來的(這個說法是推導出來的,雖然看起來有點像無稽之談,可是Function
確實是一個特殊的狀況,是JavaScript中惟一的特例)app
Function.prototype
-> Object.prototype
-> null
Person
原型對象,Function
原型對象,Object
原型對象,這三個原型對象沒有畫是由誰建立出來的,沒必要要糾結這三個對象是誰建立出來的,這些是由底層c++
實現的,若是說非要畫的話,頗有可能建立它們就是Object
。dom