中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      JavaScript中的原型鏈prototype詳解

      時間:2024-08-24 00:00:43 JavaScript 我要投稿
      • 相關推薦

      JavaScript中的原型鏈prototype詳解

        JavaScript中的繼承是通過原型鏈(prototype chain)來完成的:每個對象內部都有另外一個對象作為其prototype而存在,對象從這個prototype中繼承屬性(property)。對于每個對象來說,可以用以下三種方式來訪問其原型對象:

        1.__proto__。可以通過對象的__proto__屬性來訪問其原型對象。該屬性僅在Firefox、Safari和Chrome中得到支持,在IE和Opera中不支持。

        2.Object.getPrototypeOf()。可以將對象作為參數傳入Object.getPrototypeOf()方法,執行后即返回對象的原型對象。此方法僅在ECMAScript 5標準中得到支持。

        3.o.constructor.prototype。通過先獲取對象的constructor函數,然后再通過訪問constructor函數的prototype屬性來訪問到原型對象。使用此方法的前提為:對象中存在指向構造函數的constructor屬性。

        判斷兩個對象間是否存在原型鏈關系可以使用isPrototype()方法:

        復制代碼 代碼如下:

        var p = {x:1};

        var o = Object.create(p);

        console.log(p.isPrototypeOf(o));//true

        對于所有用字面量創建的對象而言,其prototype對象均為Object.prototype(作為一個特殊對象,Object.prototype沒有原型對象):

        復制代碼 代碼如下:

        var x = {a:18, b:28};

        console.log(x.__proto__);//Object {}

        而對于所有用new操作符創建的對象而言,其prototype對象均為constructor函數的prototype屬性:

        復制代碼 代碼如下:

        var x = {a:18, b:28};

        function Test(c){

        this.c = c;

        }

        Test.prototype = x;

        var t = new Test(38);

        console.log(t);//Object {c=38, a=18, b=28}

        console.log(t.__proto__);//Object {a=18, b=28}

        console.log(t.__proto__.__proto__);//Object {}

        JavaScript中使用new操作符創建對象的過程如下:

        1.創建一個新的空對象。

        2.將這個對象的__proto__屬性指向constructor函數的prototype屬性。

        3.將這個對象作為this參數,執行constructor函數。

        從上述創建過程可以得出結論:所有從同一個constructor函數中構造出來的對象,其__proto__屬性(也即其原型對象)相等,也就是說,只存在一個原型對象:

        復制代碼 代碼如下:

        var t = new Test(38);

        var t2 = new Test(68);

        console.log(t === t2);//false

        console.log(t.__proto__ === t2.__proto__);//true

      【JavaScript中的原型鏈prototype詳解】相關文章:

      理解JavaScript原型鏈教程09-02

      JavaScript中push(),join() 函數實例詳解09-05

      詳解JavaScript中的splice()使用方法08-20

      Javascript中arguments對象的詳解和使用方法08-20

      詳解SEO外鏈本質10-24

      JavaScript類定義原型方法的兩種實現的區別07-11

      JavaScript中的with關鍵字07-24

      在Java中執行JavaScript代碼07-14

      Javascript中typeof 用法歸納09-27

      抽象語法樹在JavaScript中的應用08-18

      主站蜘蛛池模板: 国产在线观看不卡网址| 国产精品亚洲一区二区v3d| 亚洲精选视频一区二区三区| 国产一级二级三级视频| 久久精品成人亚洲另类欧美 | 一区二区久久精品66国产精品| 日本成人免费一区二区三区| 在线一区二区三区观看视频| 建宁县| 积石山| 成人影院免费观看在线播放视频| 亚洲黄片久久| 香港三级欧美国产精品| 日本香蕉久久一区二区视频| 91久久精品美女高潮不断| 沧州市| 盖州市| 国产精品白浆免费观看| 屏南县| 都昌县| 崇礼县| 国产激情视频在线| 德清县| 满洲里市| 国产一区二区三区韩国| 91精品国产91久久综合蜜臀| 太仆寺旗| www.久久av.com| 日韩国产av一区二区三区精品| 女性| 日韩精品在线观看首页| 亚欧免费视频一区二区三区| 青青青伊人色综合久久亚洲综合| 久久亚洲第一视频黄色| 亚洲av午夜成人片精品| 亚欧免费视频一区二区三区| 亚洲国产精品久久九色| 亚洲AV秘 无套一区二区三区 | 国产成人精品aaaa视频一区| 久久网站视频免费观看| 国产流白浆一区二区三区免费视频|