摘要:是憑空產生的可看作是由產生的可看作是產生的可看作是由自己創建的和原型有關的測試一個對象在其原型鏈中是否存在一個構造函數的屬性檢測是否存在于參數的原型鏈上得到的原型
JS原型鏈
參考:mdn js秘密花園 hattle的博客
對于js的原型鏈概念,一直都沒有一個清晰的認知,最近看了許多參考資料,才算把這一塊內容大致弄明白。
在js中,一切皆對象
每個對象都有一個指向它的原型的的內部鏈接(此鏈接還沒有規范的訪問方式,一般用__proro__代替),這個原型也有自己的原型,直到每個對象的原型為null為止
任意一個函數都可以作為構造器即var someFun = new AnyFun()
每個函數都有一個prototype屬性,其它對象沒有,該屬性也是一個對象,該對象有一個constructor屬性指向該函數
使用new去實例化一個函數后,得到的是一個對象。該函數的實例的原型指向構造函數的prototype屬性
圖示圖片來自 Hattle的博客
上面圖片可以很好的表明js中原型鏈的關系。
Object.prototype是憑空產生的
Function.prototype可看作是由Object產生的
Object可看作是Function產生的
Function可看作是由自己創建的
和原型有關的API
instanceof, 測試一個對象在其原型鏈中是否存在一個構造函數的 prototype 屬性
`object instanceof constructor`
檢測 constructor.prototype 是否存在于參數 object 的原型鏈上
Object.getPrototypeOf(obj)得到obj的原型
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/80798.html
摘要:原型鏈和對象的原型是對象實例和它的構造函數之間建立的鏈接,它的值是構造函數的。對象的原型根據上文提到的構造調用函數的時候會創建一個新對象,自動將的原型指向構造函數的對象。 showImg(https://segmentfault.com/img/remote/1460000020185197); JS的原型、原型鏈一直是比較難理解的內容,不少初學者甚至有一定經驗的老鳥都不一定能完全說清...
摘要:從實現角度分析原型鏈歡迎來我的博客閱讀從實現角度分析原型鏈網上介紹原型鏈的優質文章已經有很多了,比如說作為補充,就讓我們換個角度,從實現來分析一下吧本文假設你對原型鏈已經有所了解。 從實現角度分析js原型鏈 歡迎來我的博客閱讀:《從實現角度分析js原型鏈》 網上介紹原型鏈的優質文章已經有很多了,比如說: https://github.com/mqyqingfeng/Blog/issu...
摘要:相當于在用原型繼承編寫復雜代碼前理解原型繼承模型十分重要。同時,還要清楚代碼中原型鏈的長度,并在必要時結束原型鏈,以避免可能存在的性能問題。 js是一門動態語言,js沒有類的概念,ES6 新增了class 關鍵字,但只是語法糖,JavaScript 仍舊是基于原型。 至于繼承,js的繼承與java這種傳統的繼承不一樣.js是基于原型鏈的繼承. 在javascript里面,每個對象都有一...
摘要:圖片描述缺點是無法實現多繼承可以在構造函數中,為實例添加實例屬性。 對象的方法 Object.assign() 對象可以簡寫 ,如果 key 和 value 相等則可以簡寫 let name = xm; let age = 2; let obj = { name, age, fn(){ // 可以省略函數關鍵字和冒號: console.log(2...
摘要:構造函數,實例,原型三者的關系如下圖構造函數是構成整個原型鏈的關鍵,是他利用將原型傳給了后代。因此,通過操縱構造函數的,就能夠操縱原型鏈,從而對原型鏈進行自在的拼接。 要理解js的原型鏈主要就是理清楚以下三者的關系: 構造函數的protitype屬性 對象的__proto__屬性 對象的constructor屬性 在js中,函數作為一等公民,它是一個對象,可以擁有自己的屬性,可...
摘要:二構造函數我們先復習一下構造函數的知識上面的例子中和都是的實例。這兩個實例都有一個構造函數屬性,該屬性是一個指針指向。原型鏈其中是對象的實例。 一. 普通對象與函數對象 JavaScript 中,萬物皆對象!但對象也是有區別的。分為普通對象和函數對象,Object 、Function 是 JS 自帶的函數對象。下面舉例說明 var o1 = {}; var o2 =new Objec...
閱讀 2381·2021-11-24 10:31
閱讀 3434·2021-11-23 09:51
閱讀 2243·2021-11-15 18:11
閱讀 2394·2021-09-02 15:15
閱讀 2457·2019-08-29 17:02
閱讀 2292·2019-08-29 15:04
閱讀 835·2019-08-29 12:27
閱讀 2861·2019-08-28 18:15