js中的prototype理解_第1頁(yè)
js中的prototype理解_第2頁(yè)
js中的prototype理解_第3頁(yè)
js中的prototype理解_第4頁(yè)
js中的prototype理解_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、JS中的phototype是JS中比較難理解的一個(gè)部分本文基于下面幾個(gè)知識(shí)點(diǎn):1原型法設(shè)計(jì)模式在.Net中可以使用clone()來(lái)實(shí)現(xiàn)原型法原型法的主要思想是,現(xiàn)在有1個(gè)類A,我想要?jiǎng)?chuàng)建一個(gè)類 B,這個(gè)類是以A為原型的,并且能進(jìn)行擴(kuò)展。我們稱B的原型為A。2 javascript的方法可以分為三類:a類方法b對(duì)象方法c原型方法funciLic Fee piethis naxe-nair,e;対象方法this 工口上匸匚rki匚皂匚七二uiif) alert"+);"類方法Fe Pxin=f unct ie-ii O alert ("I cen r

2、un");"原型方法Ee,prctc * Inure duceShines*"funion> alert廣栽的宅審是"h匸h:.k name):1var pl=new People"Windking");3 objl.func.call(obj)方法意思是將obj看成objl,調(diào)用func方法好了,下面一個(gè)一個(gè)問(wèn)題解決:prototype是什么含義?javascript中的每個(gè)對(duì)象都有 prototype 屬性,Javascript中對(duì)象的prototype 屬性的解釋是:返回對(duì)象類型原型的引用。A.prototype = ne

3、w B();理解prototype不應(yīng)把它和繼承混淆。A的prototype為B的一個(gè)實(shí)例,可以理解A將B中的方法和屬性全部克隆了一遍。A能使用B的方法和屬性。這里強(qiáng)調(diào)的是克隆而不是繼承。可以出現(xiàn)這種情況:A的prototype是B的實(shí)例,同時(shí) B的prototype也是A的實(shí)例。luncEicn taseZlas3()(this.shcwKsj = function()1-21 = 33 ;instance - 3hovM3o();. 顯示亡二1 自勺m :勻iic站Emg我們首先定義了 baseClass類,然后我們要定義 extentClass,但是我們打算以baseClass的一個(gè)實(shí)例

4、為原型,來(lái)克隆的extendClass也同時(shí)包含showMsg這個(gè)對(duì)象方法。extendCtotype = new baseClass() 就可以閱讀為:extendClass 是以 baseClass 的一 個(gè)實(shí)例為原型克隆創(chuàng)建的。如果extendClass中本身包含有一個(gè)與 baseClass的方法同名的方法會(huì)怎么樣?±uncticn taseCla33()this, shzvKsj = zunctic-n ()£ilert; i: :s):£thi3- 3hcwK3 =iancriari (alsrt Csxzendlaas: :siicwK

5、ag");)xt="d21a33 .prst2tp -tiae*133> ;-ar insuar;ce = ns'<();instance,; 顯示wxtEnci二二日三呂:3tcwX=g實(shí)驗(yàn)證明:函數(shù)運(yùn)行時(shí)會(huì)先去本體的函數(shù)中去找,如果找到則運(yùn)行,找不到則去prototype中尋找函數(shù)。或者可以理解為prototype不會(huì)克隆同名函數(shù)。如果我想使用extendClass的一個(gè)實(shí)例instanee調(diào)用baseClass的對(duì) 象方法showMsg怎么辦?extsaddleas-prctctTe n=v has®Class();var instanc

6、e =二皀苦i:var td3eistance =筈已盲 taseZLa33 ();baseinsraace ueL2. (insrancej : 顯示ba勺亡FL乞:這里的 base in sta nce.showMsg.call(i nsta nee);閱讀為 將 in sta nee 當(dāng)做 base in sta nee 來(lái)調(diào)用,調(diào)用它的對(duì)象方法 showMsg這里可能有人會(huì)問(wèn),為什么不用baseClass.showMsg.call(i nsta nee);這就是對(duì)象方法和類方法的區(qū)別,我們想調(diào)用的是baseClass的對(duì)象方法。最后,下面這個(gè)代碼如果理解清晰,那么這篇文章說(shuō)的就已經(jīng)理解

7、了:<script: type="Lext/iavascripT;,'>tiii a.> functicn :)alert : "ba3e"li33 : ;trii a-icn < ?alert ?=?!= 33 : : c;3. shcwXsg - zunet:.: (slrt d'bass: : 3hcwi<3j 5tatiz" > ;uncticn.tiii a.Hfiin二匸丄二n :)alert(:;=xteni2Ls33.shzwZsg = LLZZj 二"C 丄 二 t )sxTendCLass - prctotjT* =();var insuance = new exuendCla33();inatar匚亡*sh匚貨1;顯示亡x匸亡:1灶二1己勺s: uhcE?instance *baseShcwMsg ; '. §7j;ba3e*l asa;: baseShowMsginatce. shcwKit); '/Stt;extend?!; :jhcwl<°7he jeClasj . jhwMsg. call < in.star.ee ; 顯示無(wú)豈呂總二二三呂3 : : mil匚-:£呂 j st

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論