亚洲三级在线,国产黄色网址在线观看,www.天天操,污视频在线观看网站

      <menuitem id="xujay"><address id="xujay"></address></menuitem><bdo id="xujay"></bdo>
      <track id="xujay"></track>

      位置: 編程技術(shù) - 正文

      淺談JS原型對(duì)象和原型鏈(js原型作用)

      編輯:rootadmin

      推薦整理分享淺談JS原型對(duì)象和原型鏈(js原型作用),希望有所幫助,僅作參考,歡迎閱讀內(nèi)容。

      文章相關(guān)熱門(mén)搜索詞:js原型對(duì)象和原型鏈,js原型對(duì)象和原型鏈,淺談js原型對(duì)象的理解,js原型對(duì)象和原型鏈,淺談js原型對(duì)象的作用,淺談js原型對(duì)象設(shè)計(jì),淺談js原型對(duì)象的理解,淺談js原型對(duì)象的作用,內(nèi)容如對(duì)您有幫助,希望把文章鏈接給更多的朋友!

      在Javascript中,萬(wàn)物皆對(duì)象,但對(duì)象也有區(qū)別,大致可以分為兩類,即:普通對(duì)象(Object)和函數(shù)對(duì)象(Function)。

      一般而言,通過(guò)new Function產(chǎn)生的對(duì)象是函數(shù)對(duì)象,其他對(duì)象都是普通對(duì)象。

      舉例說(shuō)明:

      f1屬于函數(shù)的聲明,最常見(jiàn)的函數(shù)定義方式,f2實(shí)際上是一個(gè)匿名函數(shù),把這個(gè)匿名函數(shù)賦值給了f2,屬于函數(shù)表達(dá)式,f3不常見(jiàn),但也是一種函數(shù)對(duì)象。

      Function是JS自帶的對(duì)象,f1,f2在創(chuàng)建的時(shí)候,JS會(huì)自動(dòng)通過(guò)new Function()的方式來(lái)構(gòu)建這些對(duì)象,因此,這三個(gè)對(duì)象都是通過(guò)new Function()創(chuàng)建的。

      在Javascript中創(chuàng)建對(duì)象有兩種方式:對(duì)象字面量和使用new表達(dá)式,o1和o2的創(chuàng)建恰好對(duì)應(yīng)了這兩種方式,重點(diǎn)講一下o3, 如果用Java和C#的思路來(lái)理解的話,o3是f1的實(shí)例對(duì)象,o3和f1是同一類型,至少我以前這么認(rèn)為,其實(shí)不然…

      那么怎么理解呢&#; 很簡(jiǎn)單,看o3是不是通過(guò)new Function產(chǎn)生的, 顯然不是,既然不是函數(shù)對(duì)象,那就是普通對(duì)象 。

      通過(guò)對(duì)函數(shù)對(duì)象和普通對(duì)象的簡(jiǎn)單理解之后,我們?cè)賮?lái)了解一下Javascript中的原型和原型鏈:

      淺談JS原型對(duì)象和原型鏈(js原型作用)

      在JS中,每當(dāng)創(chuàng)建一個(gè)函數(shù)對(duì)象f1 時(shí),該對(duì)象中都會(huì)內(nèi)置一些屬性,其中包括prototype和__proto__, prototype即原型對(duì)象,它記錄著f1的一些屬性和方法。

      需要注意的是,prototype 對(duì)f1是不可見(jiàn)的,也就是說(shuō),f1不會(huì)查找prototype中的屬性和方法。

      那么,prototype有什么用呢? 其實(shí)prototype的主要作用就是繼承。 通俗一點(diǎn)講,prototype中定義的屬性和方法都是留給自己的“后代”用的,因此,子類完全可以訪問(wèn)prototype中的屬性和方法。

      想要知道f1是如何把prototype留給“后代”,我們需要了解一下JS中的原型鏈,此時(shí),JS中的 __proto__ 入場(chǎng)了,這哥們長(zhǎng)的很奇特,隱藏的也很深,以致于你經(jīng)常見(jiàn)不到它,但它在普通對(duì)象和函數(shù)對(duì)象中都存在, 它的作用就是保存父類的prototype對(duì)象,JS在通過(guò)new 表達(dá)式創(chuàng)建一個(gè)對(duì)象的時(shí)候,通常會(huì)把父類的prototype賦值給新對(duì)象的__proto__屬性,這樣,就形成了一代代傳承…

      現(xiàn)在我們知道,obj中__proto__保存的是f的prototype, 那么f的prototype中的__proto__中保存的是什么呢&#; 看下圖:

      如圖所示,f.prototype的__proto__中保存的是Object.prototype,Object.prototype對(duì)象中也有__proto__,而從輸出結(jié)果看,Object.prototype.__proto__ 是null,表示obj對(duì)象原型鏈的終結(jié)。如下圖所示:

      obj對(duì)象擁有這樣一個(gè)原型鏈以后,當(dāng)obj.foo執(zhí)行時(shí),obj會(huì)先查找自身是否有該屬性,但不會(huì)查找自己的prototype,當(dāng)找不到foo時(shí),obj就沿著原型鏈依次去查找…

      在上面的例子中,我們?cè)趂的prototype上定義了foo屬性,這時(shí)obj就會(huì)在原型鏈上找到這個(gè)屬性并執(zhí)行。

      最后,用幾句話總結(jié)一下本文中涉及到的重點(diǎn):

      原型鏈的形成真正是靠__proto__ 而非prototype,當(dāng)JS引擎執(zhí)行對(duì)象的方法時(shí),先查找對(duì)象本身是否存在該方法,如果不存在,會(huì)在原型鏈上查找,但不會(huì)查找自身的prototype。 一個(gè)對(duì)象的__proto__記錄著自己的原型鏈,決定了自身的數(shù)據(jù)類型,改變__proto__就等于改變對(duì)象的數(shù)據(jù)類型。 函數(shù)的prototype不屬于自身的原型鏈,它是子類創(chuàng)建的核心,決定了子類的數(shù)據(jù)類型,是連接子類原型鏈的橋梁。 在原型對(duì)象上定義方法和屬性的目的是為了被子類繼承和使用。

      標(biāo)簽: js原型作用

      本文鏈接地址:http://jsrtzm.cn/biancheng/379034.html 轉(zhuǎn)載請(qǐng)保留說(shuō)明!

      上一篇:javascript求日期差的方法(javascript 日期運(yùn)算)

      下一篇:JS獲取當(dāng)前腳本文件的絕對(duì)路徑(js腳本如何獲取數(shù)據(jù)庫(kù)內(nèi)容?)

    1. 個(gè)體工商戶能開(kāi)多少錢(qián)的普票
    2. 合伙事務(wù)執(zhí)行的辦法有哪些?
    3. 圖書(shū)計(jì)入什么費(fèi)用
    4. 物料損失怎么入賬
    5. 企業(yè)給員工租的公寓樓都是什么樣的
    6. 農(nóng)產(chǎn)品普通發(fā)票抵扣政策
    7. 技術(shù)服務(wù)出口免關(guān)稅政策
    8. 遞延收益為什么是非流動(dòng)負(fù)債
    9. 記賬憑證的具體審計(jì)目標(biāo)
    10. 溢價(jià)發(fā)行的債券,當(dāng)債券臨近到期日時(shí),債券價(jià)格
    11. 福利費(fèi)可以用什么科目
    12. 公賬發(fā)工資是即時(shí)到賬嗎
    13. 增資印花稅如何申報(bào)繳納
    14. 快遞費(fèi)稅率是6還是9
    15. 反寫(xiě)是清卡的意思嗎
    16. 預(yù)收賬款怎么沖減應(yīng)收賬款
    17. 勞務(wù)公司的主營(yíng)業(yè)務(wù)成本是人工工資需要個(gè)人開(kāi)發(fā)票嗎?
    18. 光纖熔接發(fā)票屬什么類別
    19. 銀行代扣社保費(fèi)
    20. 企業(yè)所得稅匯算清繳扣除比例
    21. 印花稅不足1元 需要計(jì)提嗎
    22. 什么是會(huì)計(jì)科目?為什么要設(shè)置會(huì)計(jì)科目?
    23. php異常的基類
    24. 至極加速
    25. 企業(yè)網(wǎng)管出路
    26. mac的快捷鍵在哪
    27. 營(yíng)改增之后賬務(wù)怎么處理
    28. jetcar.exe - jetcar是什么進(jìn)程 有什么作用
    29. 材料暫估入庫(kù)如何處理
    30. Wat Chaloem Phra Kiat?Phrachomklao Rachanusorn的浮廟,泰國(guó)南邦 (? pa_YON/Getty Images)
    31. php 上傳圖片
    32. 怎么安裝vue2.0
    33. 瓦普拉克
    34. php判斷數(shù)據(jù)庫(kù)是否連接成功
    35. thinkphp框架怎么用
    36. 逾期增值稅扣稅憑證抵扣管理辦法
    37. 外出培訓(xùn)餐費(fèi)要進(jìn)差旅費(fèi)嗎
    38. 字節(jié)在互聯(lián)網(wǎng)什么地位
    39. 補(bǔ)提折舊會(huì)計(jì)處理
    40. 個(gè)人出租租房交什么稅
    41. 城市維護(hù)建設(shè)稅是什么意思
    42. 使用二氧化碳滅火器時(shí)人應(yīng)該站在什么位置
    43. php增刪改查語(yǔ)句
    44. 金稅盤(pán)已作廢發(fā)票可以取消嗎
    45. 公司福利費(fèi)用會(huì)計(jì)分錄
    46. 支付土地補(bǔ)償款賬務(wù)處理
    47. sql多條記錄取一條
    48. 以前年度稅費(fèi)減免稅
    49. 固定資產(chǎn)汽車折舊年限是多少年
    50. 合并報(bào)表抵消分錄的基本原理
    51. 跨年進(jìn)項(xiàng)發(fā)票怎樣賬務(wù)處理
    52. 從農(nóng)民個(gè)人手里取出錢(qián)
    53. 公司發(fā)放工作服怎么做賬務(wù)處理
    54. 個(gè)人社保代扣業(yè)務(wù)是什么意思
    55. 哪些資產(chǎn)減值損失一經(jīng)計(jì)提不得轉(zhuǎn)回
    56. 如何登錄網(wǎng)絡(luò)?
    57. 應(yīng)付職工薪酬講解
    58. sqlserver鎖表是什么意思
    59. windows電源圖標(biāo)消失
    60. 如何設(shè)置linux
    61. centos6.9開(kāi)啟ssh服務(wù)
    62. vpengine.exe進(jìn)程
    63. 注冊(cè)表c盤(pán)桌面路徑改為d盤(pán)
    64. win7更改電腦設(shè)置在哪里
    65. ubuntu能玩什么
    66. linux升級(jí)系統(tǒng)版本
    67. win8系統(tǒng)怎樣
    68. js布局與css布局
    69. javascript的代碼寫(xiě)在哪里
    70. [置頂]從lv2開(kāi)始開(kāi)掛的原勇者候悠閑的異世界生活
    71. python utils模塊
    72. 北京稅務(wù)機(jī)關(guān)代碼查詢
    73. 南京稅務(wù)局是地市級(jí)還是副省級(jí)
    74. 蒞臨指導(dǎo)和蒞臨交流的區(qū)別
    75. 長(zhǎng)春稅務(wù)局待遇如何
    76. 工信部摩托車目錄查詢
    77. 建筑企業(yè)個(gè)人所得稅管理辦法
    78. 每月社保繳費(fèi)截止日期
    79. 江蘇省稅務(wù)局授權(quán)網(wǎng)址
    80. 城鎮(zhèn)土地使用稅稅率
    81. 免責(zé)聲明:網(wǎng)站部分圖片文字素材來(lái)源于網(wǎng)絡(luò),如有侵權(quán),請(qǐng)及時(shí)告知,我們會(huì)第一時(shí)間刪除,謝謝! 郵箱:opceo@qq.com

      鄂ICP備2023003026號(hào)

      網(wǎng)站地圖: 企業(yè)信息 工商信息 財(cái)稅知識(shí) 網(wǎng)絡(luò)常識(shí) 編程技術(shù)

      友情鏈接: 武漢網(wǎng)站建設(shè)