最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript中的原型鏈prototype介紹

 更新時間:2014年12月30日 10:12:50   投稿:junjie  
這篇文章主要介紹了JavaScript中的原型鏈prototype介紹,本文講解了訪問原型對象的3種方法,判斷兩個對象間是否存在原型鏈關系的方法等,需要的朋友可以參考下

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

1.__proto__??梢酝ㄟ^對象的__proto__屬性來訪問其原型對象。該屬性僅在Firefox、Safari和Chrome中得到支持,在IE和Opera中不支持。

2.Object.getPrototypeOf()??梢詫ο笞鳛閰?shù)傳入Object.getPrototypeOf()方法,執(zhí)行后即返回對象的原型對象。此方法僅在ECMAScript 5標準中得到支持。

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

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


復制代碼 代碼如下:

var p = {x:1};
var o = Object.create(p);
console.log(p.isPrototypeOf(o));//true


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


復制代碼 代碼如下:

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


而對于所有用new操作符創(chuàng)建的對象而言,其prototype對象均為constructor函數(shù)的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操作符創(chuàng)建對象的過程如下:

1.創(chuàng)建一個新的空對象。
2.將這個對象的__proto__屬性指向constructor函數(shù)的prototype屬性。
3.將這個對象作為this參數(shù),執(zhí)行constructor函數(shù)。

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


復制代碼 代碼如下:

var t = new Test(38);
var t2 = new Test(68);
console.log(t === t2);//false
console.log(t.__proto__ === t2.__proto__);//true

相關文章

  • javascript 閉包

    javascript 閉包

    閉包是一個擁有許多變量和綁定了這些變量的環(huán)境的表達式(通常是一個函數(shù)),因而這些變量也是該表達式的一部分,本文將用通俗的語言帶您深入理解Javascript閉包的概念。
    2011-09-09
  • php簡單數(shù)據(jù)庫操作類的封裝

    php簡單數(shù)據(jù)庫操作類的封裝

    這篇文章主要為大家詳細介紹了php簡單數(shù)據(jù)庫操作類的封裝,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • js removeChild 方法深入理解

    js removeChild 方法深入理解

    下面小編就為大家?guī)硪黄猨s removeChild 方法深入理解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • webpack配置打包后圖片路徑出錯的解決

    webpack配置打包后圖片路徑出錯的解決

    本篇文章主要介紹了webpack配置打包后圖片路徑出錯的解決,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • JS實現(xiàn)的透明度漸變動畫效果示例

    JS實現(xiàn)的透明度漸變動畫效果示例

    這篇文章主要介紹了JS實現(xiàn)的透明度漸變動畫效果,涉及javascript響應鼠標事件針對頁面元素屬性動態(tài)操作相關實現(xiàn)技巧,需要的朋友可以參考下
    2018-04-04
  • 移動web開發(fā)之touch事件實例詳解

    移動web開發(fā)之touch事件實例詳解

    下面小編就為大家分享一篇移動web開發(fā)之touch事件實例詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • JS生成登錄驗證碼的實現(xiàn)示例

    JS生成登錄驗證碼的實現(xiàn)示例

    本文主要介紹了JS生成登錄驗證碼的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-12-12
  • javascript實現(xiàn)簡易計算器的代碼

    javascript實現(xiàn)簡易計算器的代碼

    下面小編就為大家?guī)硪黄猨avascript實現(xiàn)簡易計算器的代碼小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05
  • JavaScript實現(xiàn)的購物車效果可以運用在好多地方

    JavaScript實現(xiàn)的購物車效果可以運用在好多地方

    JavaScript實現(xiàn)的購物車效果,當然這個效果可以運用在好多地方,比如好友的選擇,人力資源模塊等等,需要的朋友可以參考下
    2014-05-05
  • JS+canvas五子棋人機對戰(zhàn)實現(xiàn)步驟詳解

    JS+canvas五子棋人機對戰(zhàn)實現(xiàn)步驟詳解

    這篇文章主要介紹了JS+canvas五子棋人機對戰(zhàn)實現(xiàn)步驟詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06

最新評論

博客| 承德县| 仙桃市| 陇西县| 清远市| 盐亭县| 阳东县| 金门县| 高陵县| 尖扎县| 红安县| 大方县| 平武县| 卫辉市| 自治县| 宜川县| 安国市| 原阳县| 绥德县| 福州市| 连云港市| 休宁县| 广元市| 宁国市| 通化县| 昆明市| 曲靖市| 和平县| 海城市| 靖边县| 兴化市| 宁夏| 西平县| 新泰市| 岳池县| 翼城县| 恩平市| 茂名市| 敦煌市| 庆元县| 钟祥市|