奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

JavaScript

JavaScript中的原型鏈prototype詳解

時間:2024-08-12 10:21:31 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詳解】相關文章:

雅思聽力考試中的連續音詳解09-06

如何調試javascript腳本呢07-19

javascript跨域訪問的方法07-19

傳統供應鏈與綠色供應鏈的區別10-19

again用法詳解08-25

眼神禮儀的詳解03-09

供應鏈的分類10-21

關于DNS的知識詳解07-16

男士化妝步驟詳解11-09

非洲航線知識詳解11-03

主站蜘蛛池模板: 册亨县| 巩义市| 顺义区| 清涧县| 靖远县| 上思县| 澄迈县| 朝阳市| 体育| 张北县| 乐平市| 延长县| 泽州县| 婺源县| 高要市| 剑川县| 永宁县| 河东区| 那曲县| 长武县| 盈江县| 汝州市| 涪陵区| 德阳市| 蕉岭县| 渑池县| 景德镇市| 红桥区| 都兰县| 富源县| 千阳县| 巫山县| 大石桥市| 鹤庆县| 广德县| 枣阳市| 莒南县| 黑山县| 西城区| 锦屏县| 铁岭县|