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

js面向?qū)ο缶幊讨绾螌?shí)現(xiàn)方法重載

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

js中如何實(shí)現(xiàn)方法重載?這涉及到三個(gè)問(wèn)題

1.同名函數(shù)的調(diào)用問(wèn)題

2.函數(shù)中特殊的參數(shù)arguments

3.如何利用arguments實(shí)現(xiàn)方法重載

1、同名函數(shù)的調(diào)用問(wèn)題

都知道在js中如果存在多個(gè)名稱(chēng)相同的函數(shù),則調(diào)用實(shí)際每次都只使用最后一個(gè),js其實(shí)是沒(méi)有重載的,也就是說(shuō),如果定義了多個(gè)同名的函數(shù),單參數(shù)不一樣,在調(diào)用時(shí),js不管參數(shù)個(gè)數(shù),只管前后順序

例如:

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

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

 雖然我們調(diào)用的是test1("1"),傳遞了一個(gè)參數(shù),但實(shí)際調(diào)用的卻是test1(arg1,arg2,arg3),并沒(méi)有因?yàn)槲覀儌鬟f了一個(gè)參數(shù),而調(diào)用只有一個(gè)參數(shù)的方法。

2、函數(shù)中特殊的參數(shù)arguments

如果我們使用如下的代碼

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

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

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

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

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

經(jīng)過(guò)測(cè)試發(fā)現(xiàn),arguments包含了傳遞給函數(shù)的所有參數(shù),并且arguments.length根據(jù)實(shí)際傳遞參數(shù)的個(gè)數(shù)的不同而不同,arguments.length代表了實(shí)際傳遞給函數(shù)參數(shù)的個(gè)數(shù)。

3、如何在js中實(shí)現(xiàn)函數(shù)的重載?

經(jīng)過(guò)以上的測(cè)試發(fā)現(xiàn),在js中不能直接實(shí)現(xiàn)函數(shù)的重載,但有沒(méi)有辦法實(shí)現(xiàn)類(lèi)似重載效果的方法呢?

可以,主要就是利用arguments

例如:

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

相關(guān)文章

最新評(píng)論