欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js面向對象編程之如何實現方法重載

 更新時間:2014年07月02日 15:38:53   投稿:whsnow  
如何實現方法重載,涉及到三個問題:同名函數的調用、函數中特殊的參數arguments、如何利用arguments實現方法重載,需要的朋友可以參考下

js中如何實現方法重載?這涉及到三個問題

1.同名函數的調用問題

2.函數中特殊的參數arguments

3.如何利用arguments實現方法重載

1、同名函數的調用問題

都知道在js中如果存在多個名稱相同的函數,則調用實際每次都只使用最后一個,js其實是沒有重載的,也就是說,如果定義了多個同名的函數,單參數不一樣,在調用時,js不管參數個數,只管前后順序

例如:

function test1(arg1) 
{ 
alert("參數1:"+arg1); 
} 
function test1(arg1,arg2,arg3) 
{ 
alert("參數1:"+arg1+"參數2:"+arg2+"參數3:"+arg3); 

} 
//測試代碼 
function test(){ 
test1("1") 
}

 雖然我們調用的是test1("1"),傳遞了一個參數,但實際調用的卻是test1(arg1,arg2,arg3),并沒有因為我們傳遞了一個參數,而調用只有一個參數的方法。

2、函數中特殊的參數arguments

如果我們使用如下的代碼

function test1(arg1,arg2,arg3) 
{ 
alert("參數1:"+arg1+"參數2:"+arg2+"參數3:"+arg3); 

} 
function test1(arg1) 
{ 
alert("參數1:"+arg1); 
} 
//測試代碼 
function test(){ 
test1("1","2") 
}

我們知道調用的始終是test1(arg1),也就是只有一個參數的函數,但如何獲取傳遞的其他參數呢?

這就要用到函數中特殊的參數arguments,arguments包含了所有傳遞給函數的參數

function test1() 
{ 
var text=""; 
for(var i=0;i<arguments.length;i++){ 
text+="參數"+i+":"+arguments[i]; 
} 
alert(text); 
} 
//測試代碼 
function test(){ 
test1("1"); 
test1("1","2"); 
test1("1","2","3"); 
}

經過測試發(fā)現,arguments包含了傳遞給函數的所有參數,并且arguments.length根據實際傳遞參數的個數的不同而不同,arguments.length代表了實際傳遞給函數參數的個數。

3、如何在js中實現函數的重載?

經過以上的測試發(fā)現,在js中不能直接實現函數的重載,但有沒有辦法實現類似重載效果的方法呢?

可以,主要就是利用arguments

例如:

function test1() 
{ 
var text=""; 
if(arguments.length==1) 
{ 
//調用一個參數的方法 
} 
else if(arguments.length==2) 
{ 
//調用兩個參數的方法 
} 
else { //其他的方法 
} 
}

相關文章

  • js實現可控制左右方向的無縫滾動效果

    js實現可控制左右方向的無縫滾動效果

    這篇文章主要介紹了js實現可控制左右方向的無縫滾動效果,頁面中添加了兩個按鈕,控制圖片滾動的方向,感興趣的小伙伴們可以參考一下
    2016-05-05
  • sogou地圖API用法實例教程

    sogou地圖API用法實例教程

    這篇文章主要介紹了C# sogou地圖API用法,包括了各種常用屬性的用法實例,需要的朋友可以參考下
    2014-09-09
  • js關于精確計算和數值格式化以及直接引js文件

    js關于精確計算和數值格式化以及直接引js文件

    本文為大家介紹下關于精確計算和數值格式化以及直接引js文件,大家可以學習下
    2014-01-01
  • 實例講解DataTables固定表格寬度(設置橫向滾動條)

    實例講解DataTables固定表格寬度(設置橫向滾動條)

    下面小編就為大家?guī)硪黄獙嵗v解DataTables固定表格寬度(設置橫向滾動條)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • js實現注冊頁面校驗功能

    js實現注冊頁面校驗功能

    這篇文章主要為大家詳細介紹了js實現注冊頁面校驗功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • JavaScript 上萬關鍵字瞬間匹配實現代碼

    JavaScript 上萬關鍵字瞬間匹配實現代碼

    發(fā)一篇之前寫的文章,平時還是經常用到的,尤其是河蟹詞特別多的聊天系統里
    2013-07-07
  • js中this的指向問題歸納總結

    js中this的指向問題歸納總結

    最近發(fā)現在對JS的學習中有很多朋友對this的指向問題還是有很大的誤區(qū)或者說只是大致了解,但是一旦遇到復雜的情況就會因為this指向問題而引發(fā)各種bug。所以這篇文章主要給大家介紹了關于js中this的指向問題的相關資料,需要的朋友可以參考下
    2018-11-11
  • 自己寫的Javascript計算時間差函數

    自己寫的Javascript計算時間差函數

    Javascript計算時間差函數,獲得時間差,時間格式為 年-月-日 小時:分鐘:秒 或者 年/月/日 小時:分鐘:秒。
    2013-10-10
  • js change,propertychange,input事件小議

    js change,propertychange,input事件小議

    github上關于mootools一個issue的討論很有意思,所以就想測試記錄下。感興趣的可以點擊原頁面看看
    2011-12-12
  • js控制frameSet示例

    js控制frameSet示例

    修改frameset的cols屬性來達到修改各個頁面所占的寬高,例如隱藏當前frame頁等等,感興趣的朋友可以了解下
    2013-09-09

最新評論