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

JavaScript中如何通過arguments對象實現(xiàn)對象的重載

 更新時間:2014年05月12日 10:38:23   作者:  
js 中不存在函數(shù)的重載,但卻可以通過arguments對象實現(xiàn)對象的重載,下面有個不錯的示例,大家可以參考下
復(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ù),和執(zhí)行時候時,傳遞的實參的個數(shù)可以不一樣。
3.js執(zhí)行時候,會將真實的參數(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:因為調(diào)用的時后定義的兩個參數(shù)的函數(shù)
//也就是雖然有var的聲明,但是javascript中只要變量名稱相同,后定義的就會覆蓋
//之前定義的=======得出的結(jié)論就是js中不存在函數(shù)的重載。

//-------------------用arguments對象模擬方法的重載-----
//-依據(jù)不同的參數(shù)個數(shù),調(diào)用不同的代碼塊,最多25個參數(shù)
function addNum(){
alert(arguments.length);
for(var x=0;x<arguments.length;x++){
alert(arguments[x]);
//這個對象只能愛函數(shù)體內(nèi)
}
if(arguments.length==1){
return arguments[0]+10;
}else if(arguments.length==2){
return arguments[0]+arguments[1];
}else{
return "參數(shù)錯誤,請核對";
}
}
var value=addNum(10,20,30);
alert("函數(shù)的返回值:"+value);//結(jié)果value的值就是:"參數(shù)錯誤,請核對"
//事實上,是通過參數(shù)的判斷,去實現(xiàn)調(diào)用不同的函數(shù)功能,并且返回不同的值;這樣做類似的實現(xiàn)了java中的重載
//但是本質(zhì)上,js中是沒有重載的,相同的變量,在不同的位置出現(xiàn),若賦值后,必然會覆蓋前面聲明的變量。當(dāng)然
//這里面排除掉函數(shù)內(nèi)部的量和函數(shù)外部變量的這一種關(guān)系。
</script>
</head>
<body>

</body>
</html>

相關(guān)文章

最新評論

淮南市| 卢湾区| 禄劝| 厦门市| 许昌市| 沁阳市| 乌什县| 广灵县| 大姚县| 象州县| 磐安县| 买车| 德保县| 漳州市| 明光市| 临西县| 神池县| 凤山县| 高平市| 罗甸县| 东港市| 宜君县| 郯城县| 建德市| 会泽县| 鹰潭市| 龙泉市| 济阳县| 上杭县| 易门县| 和平县| 云梦县| 桑植县| 泽库县| 台中市| 贡觉县| 玛曲县| 集贤县| 临高县| 宁化县| 布尔津县|