js原型鏈

function Person(){}

let p1 = new Person()
let p2 = new Person()
let obj = {}

p1.__proto__ =Person.prototype       
p2.__proto__ =Person.prototype 

Person.__proto__=Function.prototype
Person.prototype=Person.prototype

Person.prototype.__proto__=Object.prototype 
Person.prototype.constructor=Person

Function.__proto__ =Function.prototype
Function.prototype=Function.prototype

Function.Prototype.__proto__=Object.prototype
Function.constructor=Function

obj. __proto__ = Object.prototype

Object. __proto__=Function.prototype
Object.prototype=Object.prototype

Object.prototype.__proto__ =null
Object.constructor=Object

放一張圖


1566904-20190104144654692-1100182048.jpg

做一個總結,說的不對的希望指出
1.無論是構造函數還是實例對象都有proto
2.實例對象的proto 指向該對象構造函數的原型即p1.proto =Person.prototype
3.構造函數的proto 都指向Function.prototype,Function自身也不例外
4.所有原型都有proto 和constructor
5.除了Object.prototype的proto為null,其他所有原型的proto都指向Object.prototype
6.原型的constructor指向原構造函數

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。