原型對象前端
原型對象簡單來講就是函數的原型所指向的對象。前面說原型的時候,說了Object.prototype所指對象就是Object(函數)的原型對象。在每一個函數的原型對象中,默認會有constructor屬性,用於指向函數自己。程序員
在最開始的時候,原型對象的constructor設計主要是爲了獲取對象的構造函數。後來發現constructor屬性易變,不可信。推薦使用instanceof。web
原型對象有什麼做用,主要實現對象的繼承。面試
例如咱們經常使用的對象、數組、函數都是得益於原型。數組
當咱們使用變量直接量定義一個對象的時候,其實咱們是沒有定義它上面的這些可以調用的方法函數
let obj = {};學習
這些方法怎麼來的,就是經過調用Object上面的原型對象而來的。spa
console.log(Object.prototype)
prototype
同理數組(經過調用Array.prototype),函數(經過調用Function.prototype)設計
原型鏈
ECMAScript中描述了原型鏈的概念,並將原型鏈做爲實現繼承的主要方法。其基本思想是利用原型讓一個引用類型繼承另外一個引用類型的屬性和方法。簡單回顧一下構造函數、原型和實例的關係:每一個構造函數都有一個原型對象,原型對象都包含一個指向構造函數的指針,而實例都包含一個指向原型對象的內部指針。那麼,假如咱們讓原型對象等於另外一個類型的實例,結果會怎麼樣呢?顯然,此時的 原型對象將包含一個指向另外一個原型的指針,相應地,另外一個原型中也包含着一個指向另外一個構造函數的指針。假如另外一個原型又是另外一個類型的實例,那麼上述關係依然成立,如此層層遞進,就構成了實例與原型的鏈條。這就是所謂原型鏈的基本概念。
更多網頁前端開發教程,行業資訊,面試技巧,歡迎關注公衆號:網頁前端開發學習
記得點個贊
若是有對web前端感興趣前端程序員,,可加入咱們的web前端技術學習羣的640633433,裏面免費送前端的零基礎教程噢!
寫在最後:
不少人都知道我是學全棧的,都天真的覺得我有全套的前端、網頁製做等視頻學習資料。我想說大家是對的,個人確有前端的全套視頻資料。