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

JS重載實現(xiàn)方法分析

 更新時間:2016年12月16日 14:18:53   作者:鬼畜十三  
這篇文章主要介紹了JS重載實現(xiàn)方法,結合實例形式分析了javascript重載的實現(xiàn)與使用方法,需要的朋友可以參考下

本文實例分析了JS重載實現(xiàn)方法。分享給大家供大家參考,具體如下:

重載是面向對象語言里很重要的一個特性,JS中沒有真正的重載,是模擬出來的(因為js是基于對象的編程語言,不是純面向對象的,它沒有真正的多態(tài):如繼承、重載、重寫)

一、什么時候用重載?

舉例:

function getDataTop10(){
  alert("返回前10條數(shù)據(jù)");
}

后來需求改了,需要獲得20條數(shù)據(jù),而getDataTop10又被很多函數(shù)調用了,整體替換可以但麻煩,這時可以用重載

進而引出什么是重載:函數(shù)名相同,但是可以區(qū)分出來,想用哪個就用哪個,而不是后面的同名函數(shù)覆蓋前面的

二、怎么用?

arguments:Js里的一個內置對象,包含了調用者傳遞的實際參數(shù)(函數(shù)聲明時定義的參數(shù)個數(shù)不影響)

function getData(){
  alert("返回所有數(shù)據(jù)");
}
function getDataTop(num){
  alert("返回前"+num+"數(shù)據(jù)");
}
function getDataLimit(num1,num2){
  alert("返回前"+num1+"-"+num2+"數(shù)據(jù)");
}
function getDste(){
  var num=arguments.length;
  if(!num){
  getData();
  }
  else if(num==1){
  getDataTop(arguments[0]);
  }
  else if(num==2){
  getDataLimit(arguments[0],arguments[1]);
  }
}
getDste(5)

當參數(shù)很多時要寫一大串,遂可以改進

function getData(){
  alert("返回所有數(shù)據(jù)");
}
function getDataTop(num){
  alert("返回前"+num+"數(shù)據(jù)");
}
function getDataLimit(num1,num2){
  alert("返回前"+num1+"-"+num2+"數(shù)據(jù)");
}
function getDste(){
  var num=arguments.length;
  if(!num){
    getData();
  }
  else if(num==1){
    getDataTop.apply(this,arguments);
  }
  else if(num==2){
    getDataLimit.apply(this,arguments);
  }
}
getDste(5)

如果參數(shù)個數(shù)相同,類型不同,又該如何

function getData(){
  alert("返回所有數(shù)據(jù)");
}
function getDataTop(num){
  alert("返回前"+num+"數(shù)據(jù)");
}
function getDataLimit(num1,num2){
  alert("返回前"+num1+"-"+num2+"數(shù)據(jù)");
}
function getDataByType(type){
  alert("將返回"+type+"類型的數(shù)據(jù)");
}
function getDste(){
  var num=arguments.length;
  if(!num){
  getData();
  }
  else if(num==1){
  if(typeof arguments[0]=="number"){
      getDataTop.apply(this,arguments);
  }
  else{
    getDataByType.apply(this,arguments);
  }
  }
  else if(num==2){
  getDataLimit.apply(this,arguments);
  }
}
getDste("array")

三、好處

有利于合作開發(fā)

四、壞處

“實現(xiàn)”太勉強,如果參數(shù)過多,就要很多if語句,顯得代碼很亂

更多關于JavaScript相關內容可查看本站專題:《javascript面向對象入門教程》、《JavaScript中json操作技巧總結》、《JavaScript切換特效與技巧總結》、《JavaScript查找算法技巧總結》、《JavaScript錯誤與調試技巧總結》、《JavaScript數(shù)據(jù)結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數(shù)學運算用法總結

希望本文所述對大家JavaScript程序設計有所幫助。

相關文章

最新評論

萍乡市| 卓尼县| 菏泽市| 金昌市| 蓝田县| 高州市| 寿光市| 儋州市| 淮滨县| 磐安县| 宕昌县| 张家港市| 东乌珠穆沁旗| 夹江县| 陵水| 武功县| 延津县| 柘城县| 辽宁省| 秦皇岛市| 舟曲县| 和田市| 抚远县| 新建县| 景宁| 滨海县| 柳林县| 南陵县| 三台县| 沽源县| 米泉市| 广安市| 垦利县| 新河县| 乌兰浩特市| 汝州市| 湘阴县| 开江县| 五寨县| 徐闻县| 铜川市|