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

JavaScript原型式繼承實(shí)現(xiàn)方法

 更新時(shí)間:2019年11月06日 16:58:47   作者:好多坨屎  
這篇文章主要介紹了JavaScript原型式繼承實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了JavaScript原型式繼承實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

在2006年,有個(gè)叫道格拉斯·克羅克福德的人寫了一篇文章,題目翻譯為中文就是JavaScript中的原型式繼承。在此文章里,他介紹了一種實(shí)現(xiàn)繼承的方法。他的想法是借助原型可以基于已有的對(duì)象創(chuàng)建新對(duì)象,同時(shí)還不必因此創(chuàng)建自定義類型。于是,他就寫下了如下的函數(shù):

function object(o){
    function F(){};
    F.prototype = o;
    return new F();
  }

實(shí)現(xiàn)方法如下:

//在object()函數(shù)的內(nèi)部,先創(chuàng)建了一個(gè)臨時(shí)性的構(gòu)造函數(shù),然后將傳入的對(duì)象作為這個(gè)構(gòu)造函數(shù)的原型,最后返回了這個(gè)臨時(shí)類型的一個(gè)新實(shí)例
  var person = {
    name:"Nick",
    friends:["xiaowang","xiaochen"]
  };
  var person1 = object(person);
  person1.name = "Mike";
  person1.friends.push("xiaozhang");

  var person2 = object(person);
  person2.name = "lifei";
  person2.friends.push("xiaoli");
  console.log("person1:" + person1.name);
  console.log("person2:" + person2.name)
  console.log("person1 friends:" + person1.friends);
  console.log("person2 friends:" + person2.friends);
  console.log("all friends:" + person.friends);

運(yùn)行結(jié)果如下:

哇,怎么和原型鏈繼承模式一樣,不管你建了多少個(gè)實(shí)例,這個(gè)父類的引用值始終都會(huì)被這些個(gè)子類所創(chuàng)建的實(shí)例共享,所以這種繼承方式名為原型式繼承,和原型鏈就差一個(gè)字=。=

對(duì)咯,在ES5中,新增了Object.create()方法規(guī)范化了原型式繼承,它有兩個(gè)參數(shù),第一個(gè)參數(shù)是用作新對(duì)象原型的對(duì)象,第二個(gè)參數(shù)是可選的,是一個(gè)為新對(duì)象定義額外屬性的對(duì)象。在傳入一個(gè)參數(shù)的時(shí)候,這個(gè)方法是和object()方法一樣一樣的!

相關(guān)文章

最新評(píng)論

四子王旗| 莆田市| 湾仔区| 色达县| 罗平县| 阳春市| 叶城县| 河曲县| 新民市| 黎城县| 安龙县| 平南县| 巴林右旗| 华阴市| 仙桃市| 当涂县| 会泽县| 霸州市| 舟山市| 松原市| 肃宁县| 昌邑市| 建水县| 房产| 化隆| 四子王旗| 友谊县| 定日县| 海南省| 彭山县| 兴海县| 玉龙| 河池市| 金乡县| 宁阳县| 防城港市| 阿拉善右旗| 永仁县| 涟水县| 宾川县| 玉田县|