• 當前位置:首頁 > IT技術 > Web編程 > 正文

    js原型和繼承
    2021-10-11 15:03:03

    1、引用類型,都具有對象特性,即可自由擴展屬性。

    2、引用類型,都有一個隱式原型 __proto__ 屬性,屬性值是一個普通的對象。

    3、引用類型,隱式原型 __proto__ 的屬性值指向它的構造函數的顯式原型 prototype 屬性值。

    4、當你試圖得到一個對象的某個屬性時,如果這個對象本身沒有這個屬性,那么它會去它的隱式原型 __proto__(也就是它的構造函數的顯式原型 prototype)中尋找。

    在自定義構造函數時原型對象只會獲得constructor屬性,其他的都是從Object繼承而來,調用構造函數創建實例就是將實例的[[Prototype]]指針被賦值為構造函數的原型對象。[[Prototype]]在腳本中沒有訪問它的標準方式,但是瀏覽器提供了__proto__.

    constructor屬性是原型的它會指回與之關聯的構造函數

    個人理解:一般形式的對象數組,引用類型,有的是__proto__指向它的原型,而構造函數它的是prototype屬性指向原型,這兩個都是指向原型的。

    實列和構造函數是一級的(它兩更像是兄弟關系),它們指向同一個原型(構造函數通過prototype訪問,實例通過__proto__訪問)報錯的兩行是打錯了但是不影響

    ?

    然后在看對象實例原型的原型

    ?

    這是對象實例xiaoMing的原型的原型,也是Object的原型內置的,所有的實例對象構造函數即對象類型都是Object的實例

    Object原型的的原型是null

    ?

    Object實際只是一個概念,JavaScript這個語言基于對象,是說所有內建類型都被抽象出了一組公用的方法和屬性(也可以叫行為和狀態),我們就想像只擁有這些特性的一個東西就是Object

    簡單的關系如下圖

    ?

    當你調用對象實例的一個方法或者屬性會先查詢你自身有沒有,如果有就調用,如果沒有就查它的原型,如果還是沒有就查原型的原型直到null,還是沒有就報錯。

    本文摘自 :https://www.cnblogs.com/

    開通會員,享受整站包年服務
    国产呦精品一区二区三区网站|久久www免费人咸|精品无码人妻一区二区|久99久热只有精品国产15|中文字幕亚洲无线码