国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

利用javascript中的call實(shí)現(xiàn)繼承

2019-11-21 02:19:21
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
昨天阿丹傳了一個(gè)javascript中的重載例子給我,感覺(jué)不錯(cuò).雖然到現(xiàn)在還是不太明白.怎么實(shí)現(xiàn)的.但還是貼出來(lái).
實(shí)現(xiàn)setTimeout傳object對(duì)象
看以下代碼實(shí)現(xiàn)向里面的function 傳參數(shù)
<script type="text/javascript">
var _st = window.setTimeout;
window.setTimeout = function(fRef, mDelay) {
 if(typeof fRef == 'function'){
  var argu = Array.prototype.slice.call(arguments,2);
  var f = (function(){ fRef.apply(null, argu); });
  return _st(f, mDelay);
 }
 return _st(fRef,mDelay);
}
function test(x){
 alert(x);
}
window.setTimeout(test,1000,'fason');
</script>

call方法JScript參考中的說(shuō)明:調(diào)用一個(gè)對(duì)象的一個(gè)方法,以另一個(gè)對(duì)象替換當(dāng)前對(duì)象。call([thisObj[,arg1[, arg2[, [,.argN]]]]]),但是沒(méi)有示例 
apply方法JScript參考中的說(shuō)明:應(yīng)用某一對(duì)象的一個(gè)方法,用另一個(gè)對(duì)象替換當(dāng)前對(duì)象。apply([thisObj[,argArray]]) 
實(shí)際上這兩個(gè)的作用幾乎是相同的,要注意的地方是call(thisObj[,arg1[, arg2[,)中的arg參數(shù)可以是變量,而apply([thisObj[,argArray]])中的參數(shù)為數(shù)組集合。 

今早又看到一篇利用call實(shí)現(xiàn)繼承的例子.呵呵..也一并貼出來(lái).這個(gè)例子比較簡(jiǎn)單.就算是由淺入深吧
<script language="javascript" type="text/javascript">

      function father(){//父類(lèi)

             var self=this;                                  //私有變量,子類(lèi)里不會(huì)繼承!

             var var_private="private variable";      //私有變量

             this.var_public="public variable";  //公有變量

             

             this.author="xling";

             this.test=function(msg){                  //公有方法

                   alert("該方法位于父類(lèi) :" + msg + "/n" + self.author);

             }

             

             var test2=function(){                      //私有方法,子類(lèi)不能調(diào)用

                   alert("這個(gè)方法是父類(lèi)的私有方法");

             }

      }

      

      function father2(){

             this.email="xlingFairy#hotmail.com";

      }

      

      function suber(){//子類(lèi)

             father.call(this);//通過(guò)這一句來(lái)繼承父類(lèi)(father)類(lèi)的可見(jiàn)變量及方法(this)

      }

      

      function sun(){

             suber.call(this);

             father2.call(this);//和上面的一句放在一起, 主站蜘蛛池模板: 吴旗县| 郧西县| 二手房| 天津市| 甘德县| 出国| 泉州市| 比如县| 黑龙江省| 新郑市| 墨竹工卡县| 唐河县| 双流县| 花垣县| 日照市| 萝北县| 如东县| 东乡族自治县| 内黄县| 通州区| 奉节县| 新沂市| 岳池县| 沙田区| 阳信县| 汨罗市| 长葛市| 来安县| 上杭县| 镇江市| 南通市| 寻甸| 阳春市| 南乐县| 伊金霍洛旗| 泸溪县| 游戏| 宝鸡市| 萨嘎县| 全州县| 雷州市|