JavaScript中如何通過arguments對(duì)象實(shí)現(xiàn)對(duì)象的重載
更新時(shí)間:2014年05月12日 10:38:23 作者:
js 中不存在函數(shù)的重載,但卻可以通過arguments對(duì)象實(shí)現(xiàn)對(duì)象的重載,下面有個(gè)不錯(cuò)的示例,大家可以參考下
復(fù)制代碼 代碼如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
/*
*1.js 中不存在函數(shù)的重載
2.js函數(shù)定義時(shí)候的形參個(gè)數(shù),和執(zhí)行時(shí)候時(shí),傳遞的實(shí)參的個(gè)數(shù)可以不一樣。
3.js執(zhí)行時(shí)候,會(huì)將真實(shí)的參數(shù),封裝成組arguments
*/
function add(a){
return a+10;
}
var add=new Function("a","return a+10");
//alert(add(5));
function add(num1,num2){
return num1+num2;
}
var add=new Function("num1","num2","return num1+num2");
alert(add(5,6));
alert(add(5));//這樣調(diào)用的結(jié)果是NaN:因?yàn)檎{(diào)用的時(shí)后定義的兩個(gè)參數(shù)的函數(shù)
//也就是雖然有var的聲明,但是javascript中只要變量名稱相同,后定義的就會(huì)覆蓋
//之前定義的=======得出的結(jié)論就是js中不存在函數(shù)的重載。
//-------------------用arguments對(duì)象模擬方法的重載-----
//-依據(jù)不同的參數(shù)個(gè)數(shù),調(diào)用不同的代碼塊,最多25個(gè)參數(shù)
function addNum(){
alert(arguments.length);
for(var x=0;x<arguments.length;x++){
alert(arguments[x]);
//這個(gè)對(duì)象只能愛函數(shù)體內(nèi)
}
if(arguments.length==1){
return arguments[0]+10;
}else if(arguments.length==2){
return arguments[0]+arguments[1];
}else{
return "參數(shù)錯(cuò)誤,請核對(duì)";
}
}
var value=addNum(10,20,30);
alert("函數(shù)的返回值:"+value);//結(jié)果value的值就是:"參數(shù)錯(cuò)誤,請核對(duì)"
//事實(shí)上,是通過參數(shù)的判斷,去實(shí)現(xiàn)調(diào)用不同的函數(shù)功能,并且返回不同的值;這樣做類似的實(shí)現(xiàn)了java中的重載
//但是本質(zhì)上,js中是沒有重載的,相同的變量,在不同的位置出現(xiàn),若賦值后,必然會(huì)覆蓋前面聲明的變量。當(dāng)然
//這里面排除掉函數(shù)內(nèi)部的量和函數(shù)外部變量的這一種關(guān)系。
</script>
</head>
<body>
</body>
</html>
您可能感興趣的文章:
- javascript內(nèi)置對(duì)象arguments詳解
- js arguments對(duì)象應(yīng)用介紹
- Javascript中arguments對(duì)象的詳解與使用方法
- Javascript中的arguments對(duì)象
- Javascript中arguments對(duì)象詳解
- JS中使用變量保存arguments對(duì)象的方法
- 深入解析JavaScript中的arguments對(duì)象
- 跟我學(xué)習(xí)javascript的arguments對(duì)象
- Javascript學(xué)習(xí)筆記之函數(shù)篇(四):arguments 對(duì)象
- js中arguments對(duì)象的深入理解
相關(guān)文章
OpenLayer實(shí)現(xiàn)自定義坐標(biāo)點(diǎn)的繪制
OpenLayers?是一個(gè)專為Web?GIS?客戶端開發(fā)提供的JavaScript?類庫包,用于實(shí)現(xiàn)標(biāo)準(zhǔn)格式發(fā)布的地圖數(shù)據(jù)訪問。本文將利用OpenLayer實(shí)現(xiàn)自定義坐標(biāo)點(diǎn)的繪制,感興趣的可以了解一下2022-04-04
鼠標(biāo)拖動(dòng)改變DIV等網(wǎng)頁元素的大小的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄髽?biāo)拖動(dòng)改變DIV等網(wǎng)頁元素的大小的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07
通過location.replace禁止瀏覽器后退防止重復(fù)提交
如果用戶重復(fù)提交事件,然后又后退,這樣可能會(huì)對(duì)某些數(shù)據(jù)產(chǎn)生災(zāi)難性的問題。所以今天就向大家介紹一種通過location.replace禁止瀏覽器后退按鈕的方法2014-09-09
使用layui+ajax實(shí)現(xiàn)簡單的菜單權(quán)限管理及排序的方法
今天小編就為大家分享一篇使用layui+ajax實(shí)現(xiàn)簡單的菜單權(quán)限管理及排序的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-09-09
JavaScript中的appendChild()方法示例詳解
這篇文章主要介紹了JavaScript中的appendChild()方法,appendChild()方法是向節(jié)點(diǎn)添加最后一個(gè)子節(jié)點(diǎn),也可以使用此方法從一個(gè)元素向另一個(gè)元素移動(dòng)元素,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-10-10
JavaScript鼠標(biāo)拖動(dòng)事件監(jiān)聽使用方法以及實(shí)例效果演示
最近工作中遇到了鼠標(biāo)拖動(dòng)事件監(jiān)聽的相關(guān)需求,所以下面這篇文章主要給大家介紹了關(guān)于JavaScript鼠標(biāo)拖動(dòng)事件監(jiān)聽使用方法以及實(shí)例效果演示的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05
流量統(tǒng)計(jì)器如何鑒別C#:WebBrowser中偽造referer
這篇文章主要介紹了流量統(tǒng)計(jì)器如何鑒別C#:WebBrowser中偽造referer,需要的朋友可以參考下2015-01-01
Bootstrap基本插件學(xué)習(xí)筆記之標(biāo)簽切換(17)
這篇文章主要為大家詳細(xì)介紹了Bootstrap基本插件學(xué)習(xí)筆記之標(biāo)簽切換的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12

