淺談js原型對象和原型鏈

淺談js原型對象和原型鏈

ID:30517359

大小:16.87 KB

頁數(shù):4頁

時間:2018-12-31

淺談js原型對象和原型鏈_第1頁
淺談js原型對象和原型鏈_第2頁
淺談js原型對象和原型鏈_第3頁
淺談js原型對象和原型鏈_第4頁
資源描述:

《淺談js原型對象和原型鏈》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在應用文檔-天天文庫。

1、我真正系統(tǒng)地接觸和學習黨的基本知識是在這次中級黨校的培訓班上。通過學習,了解了黨的發(fā)展歷程,對黨的性質(zhì)、宗旨、任務等基本知識有了進一步的了解淺談JS原型對象和原型鏈  在Javascript中,萬物皆對象,但對象也有區(qū)別,大致可以分為兩類,即:普通對象(Object)和函數(shù)對象(Function)。  一般而言,通過newFunction產(chǎn)生的對象是函數(shù)對象,其他對象都是普通對象?! ∨e例說明:  functionf1(){  ?//todo  }  varf2=function(){  ?//todo  };  varf3=newFunct

2、ion('x','console.log(x)');  varo1={};  varo2=newObject();  varo3=newf1();  console.log(  ?typeoff1,//function  ?typeoff2,//function  ?typeoff3,//function  ?typeofo1,//object對黨的認識也有了進一步的提高。才真正體會到了中國共產(chǎn)黨的偉大、光榮和正確,更感到只有中國共產(chǎn)黨是全中國最廣大人民利益的忠實代表我真正系統(tǒng)地接觸和學習黨的基本知識是在這次中級黨校的培訓班上。通過學習,了解

3、了黨的發(fā)展歷程,對黨的性質(zhì)、宗旨、任務等基本知識有了進一步的了解  ?typeofo2,//object  ?typeofo3//object  );  >>functionfunctionfunctionobjectobjectobject  f1屬于函數(shù)的聲明,最常見的函數(shù)定義方式,f2實際上是一個匿名函數(shù),把這個匿名函數(shù)賦值給了f2,屬于函數(shù)表達式,f3不常見,但也是一種函數(shù)對象。  Function是JS自帶的對象,f1,f2在創(chuàng)建的時候,JS會自動通過newFunction()的方式來構(gòu)建這些對象,因此,這三個對象都是通過newFu

4、nction()創(chuàng)建的?! ≡贘avascript中創(chuàng)建對象有兩種方式:對象字面量和使用new表達式,o1和o2的創(chuàng)建恰好對應了這兩種方式,重點講一下o3,如果用Java和C#的思路來理解的話,o3是f1的實例對象,o3和f1是同一類型,至少我以前這么認為,其實不然…  那么怎么理解呢?很簡單,看o3是不是通過newFunction產(chǎn)生的,顯然不是,既然不是函數(shù)對象,那就是普通對象?! ⊥ㄟ^對函數(shù)對象和普通對象的簡單理解之后,我們再來了解一下Javascript中的原型和原型鏈:  在JS中,每當創(chuàng)建一個函數(shù)對象f1對黨的認識也有了進一步的提

5、高。才真正體會到了中國共產(chǎn)黨的偉大、光榮和正確,更感到只有中國共產(chǎn)黨是全中國最廣大人民利益的忠實代表我真正系統(tǒng)地接觸和學習黨的基本知識是在這次中級黨校的培訓班上。通過學習,了解了黨的發(fā)展歷程,對黨的性質(zhì)、宗旨、任務等基本知識有了進一步的了解時,該對象中都會內(nèi)置一些屬性,其中包括prototype和__proto__,?prototype即原型對象,它記錄著f1的一些屬性和方法。  需要注意的是,prototype對f1是不可見的,也就是說,f1不會查找prototype中的屬性和方法。  functionf(){}  f.prototype.

6、foo="abc";  console.log(f.foo);//undefined  那么,prototype有什么用呢?其實prototype的主要作用就是繼承。通俗一點講,prototype中定義的屬性和方法都是留給自己的“后代”用的,因此,子類完全可以訪問prototype中的屬性和方法。  想要知道f1是如何把prototype留給“后代”,我們需要了解一下JS中的原型鏈,此時,JS中的__proto__入場了,這哥們長的很奇特,隱藏的也很深,以致于你經(jīng)常見不到它,但它在普通對象和函數(shù)對象中都存在,它的作用就是保存父類的protot

7、ype對象,JS在通過new表達式創(chuàng)建一個對象的時候,通常會把父類的prototype賦值給新對象的__proto__屬性,這樣,就形成了一代代傳承…  functionf(){}  f.prototype.foo="abc";  varobj=newf();  console.log(obj.foo);//abc對黨的認識也有了進一步的提高。才真正體會到了中國共產(chǎn)黨的偉大、光榮和正確,更感到只有中國共產(chǎn)黨是全中國最廣大人民利益的忠實代表我真正系統(tǒng)地接觸和學習黨的基本知識是在這次中級黨校的培訓班上。通過學習,了解了黨的發(fā)展歷程,對黨的性質(zhì)、宗

8、旨、任務等基本知識有了進一步的了解  obj對象擁有這樣一個原型鏈以后,當obj.foo執(zhí)行時,obj會先查找自身是否有該屬性,但不會查找自己的prototype,

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。