|
var f1 = function(p1,p2,p3){
switch(arguments.length){
case 0:
alert("無參版本的f1")
break;
case 1:
alert("1個(gè)參數(shù)版本的f1:" + p1)
break;
case 2:
alert("2個(gè)參數(shù)版本的f1:" + p1 + "," + p2)
break;
case 3:
alert("3個(gè)參數(shù)版本的f1:" + p1 + "," + p2 + "," + p3)
break;
default:
alert("不支持多于3個(gè)參數(shù)的調(diào)用!");
break;
}
}
f1();
f1("1");
f1("a",100);
f1("1","2","3");
f1("1","2","3","4")
2.參數(shù)個(gè)數(shù)檢測
js引擎同樣也不會(huì)在function調(diào)用時(shí),強(qiáng)制檢查參數(shù)個(gè)數(shù),所以只能自己處理,示例代碼:
復(fù)制代碼 代碼如下:
var fnMustOneParam = function(p){
//檢測有沒有參數(shù)傳入
if (typeof p=="undefined"){
alert("fnMustOneParam必須要有參數(shù)傳入,才能調(diào)用(1)!");
return ;
}
//也可以寫成這樣
if (arguments.length==0){
alert("fnMustOneParam必須要有參數(shù)傳入,才能調(diào)用(2)!");
return;
}
//檢測參數(shù)個(gè)數(shù)
if (arguments.length!=0){
alert("fnMustOneParam只能傳入一個(gè)參數(shù)調(diào)用!");
return;
}
//to do...
}
//fnMustOneParam(1,3,4);
3.參數(shù)基本類型檢測
js引擎同樣更不會(huì)檢測參數(shù)的類型,如果您希望對參數(shù)的基本類型做些限制,可以利用typeof 來判斷基本類型
復(fù)制代碼 代碼如下:
var fnString = function(s){
if (arguments.length!=1){
alert("參數(shù)個(gè)數(shù)不匹配!");
return ;
}
if (typeof s != "string"){
alert("只能傳入string類型的參數(shù)!");
return ;
}
}
//fnString(123);
4.自定義類的參數(shù)類型檢測
第3條所提到的方法,只能檢測參數(shù)的基本類型,如果是自定義類的參數(shù),如果用typeof運(yùn)算符號(hào),只能得到object的類型檢測結(jié)果,這時(shí)可利用instanceof運(yùn)算符號(hào)來解決
復(fù)制代碼 代碼如下:
function Person(name,age){
this.name = name;
this.age = age;
}
function fnPerson(p){
if (arguments.length=1 && p instanceof Person){
alert("fnPerson調(diào)用成功,p.name=" + p.name + ",p.age=" + p.age);
}
else{
alert("必須傳入一個(gè)Person類型的參數(shù)才能調(diào)用!");
}
}
fnPerson("asdf");
fnPerson(new Person('菩提樹下的楊過',30))
JavaScript技術(shù):javascript function調(diào)用時(shí)的參數(shù)檢測常用辦法,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。