深入理解javascript prototype的相關(guān)知識(shí)
如圖比較好的闡述了prototype和__proto__
簡(jiǎn)單的可以這么理解:
狗類A( function foo()),狗類A的模板描述:A.模板 (foo.prototype)是一個(gè)對(duì)象object, A.模板有個(gè)構(gòu)造方法
foo.prototype.constructor=function foo()
動(dòng)物B(function function()), 動(dòng)物B的模板描述 . B.模板 (function.prototype), B.模板有個(gè)構(gòu)造方法
function.prototype.constructor=function function()
狗C= new 狗類A (f1=new foo())
那么狗c的父類模板=A.模板 即 f1.__proto__= foo.prototype.
狗類A的父類模板=B.模板 即 foo.__proto__=function.prototype
只有函數(shù)有prototype,對(duì)象是沒(méi)有的。
但是函數(shù)也是有__proto__的,因?yàn)楹瘮?shù)也是對(duì)象。函數(shù)的__proto__指向的是Function.prototype。
也就是說(shuō)普通函數(shù)是Function這個(gè)構(gòu)造函數(shù)的一個(gè)實(shí)例。
__proto__可以理解為指向父類模板的一個(gè)引用。用來(lái)查找父類模板的
prototype可以理解為對(duì)象的一個(gè)屬性,用來(lái)描述自身如果作為模板是如何定義的,該模板有方法和屬性。
function foo() 自身如果作為模板prototype,它自身會(huì)有構(gòu)建函數(shù),模板的屬性constructor就是描述這個(gè)構(gòu)建函數(shù)。
foo()這個(gè)對(duì)象實(shí)際上是隱含從父類模板繼承過(guò)來(lái)的,這個(gè)父類模板就是function function()的模板屬性。即它的prototype.
設(shè)計(jì)者定義的時(shí)候名稱比較混淆不利于理解。這是javascript的敗筆。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- javascript 對(duì)象 與 prototype 原型用法實(shí)例分析
- js中的hasOwnProperty和isPrototypeOf方法使用實(shí)例
- JavaScript prototype 使用介紹
- js中prototype用法詳細(xì)介紹
- 詳解Javascript中prototype屬性(推薦)
- JS 面向?qū)ο笾衿娴膒rototype
- JS面向?qū)ο?、prototype、call()、apply()
- 深入了解javascript中的prototype與繼承
- javascript prototype的深度探索不是原型繼承那么簡(jiǎn)單
- Javascript中的Prototype到底是什么
- js prototype深入理解及應(yīng)用實(shí)例分析
相關(guān)文章
基于JavaScript實(shí)現(xiàn)無(wú)縫滾動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了基于JavaScript實(shí)現(xiàn)無(wú)縫滾動(dòng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07js實(shí)現(xiàn)本地持久化存儲(chǔ)登錄注冊(cè)
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)本地持久化存儲(chǔ)登錄注冊(cè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08JavaScript條件判斷_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
JavaScript使用if () { ... } else { ... }來(lái)進(jìn)行條件判斷。下通過(guò)語(yǔ)句代碼給大家詳細(xì)介紹js 條件判斷的基本知識(shí),需要的的朋友參考下吧2017-06-06使用D3.js構(gòu)建實(shí)時(shí)圖形的示例代碼
這篇文章主要介紹了使用D3.js構(gòu)建實(shí)時(shí)圖形的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-08-08