国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript 的方法重載效果

2019-11-21 01:12:45
字體:
供稿:網(wǎng)友
在 JavaScript 的方法內(nèi),有個叫做 arguments 的變量數(shù)組,它是只讀的,所有實際傳入的參數(shù)變量都
放在了里面,通過它,我們可以對傳入的參數(shù)進行類型檢查,從而實現(xiàn)重載的效果。
判斷一個變量的類型有兩種方法。
1,用 typeof 語句:
復(fù)制代碼 代碼如下:

function check(){
if(typeof arguments[0] == 'string')
alert('你傳入的參數(shù)是個字符串');
else if(typeof arguments[0] == 'number')
alert('你傳入的參數(shù)是個數(shù)字');
}

2,用所有 JavaScript 變量都帶有的一個屬性 constructor,這個屬性指向用來構(gòu)造該變量的構(gòu)造函數(shù):
復(fù)制代碼 代碼如下:

function check(){
if(arguments[0].constructor == String)
alert('你傳入的參數(shù)是個字符串');
else if(arguments[0].constructor == Number)
alert('你傳入的參數(shù)是個數(shù)字');
}

對照表:
typeof constructor
---------------------------
string String
number Number
object Object
function Function
boolean Boolean
object Array
object User
通過這個對照表可以看出用 typeof 不能準(zhǔn)確的判斷出具體的類型,所以我們用 constructor 來進行判
斷。
首先我們定義一個用來判斷參數(shù)類型和個數(shù)的方法
復(fù)制代碼 代碼如下:

function checkArgs(types,args){
// 檢查參數(shù)個數(shù)
if(types.length != args.length){
return false;
}
// 檢查參數(shù)類型
for(var i=0; i<args.length; i++){
if(args[i].constructor != types[i]){
return false;
}
}
return true;
}

我們定義一個方法對上面的方法進行應(yīng)用
復(fù)制代碼 代碼如下:

function show(){
// 處理參數(shù)是一個字符串的調(diào)用
if(checkArgs([String],arguments)){
alert(arguments[0]);
}
// 處理參數(shù)是一個字符串和一個數(shù)字的調(diào)用
else if(checkArgs([String,Number],arguments)){
var s = '';
for(var i=0; i<arguments[1]; i++){
s+=arguments[0];
}
alert(s);
// 參數(shù)不符合要求時,給予提示
}else{
alert('不支持的參數(shù)');
}
}

當(dāng)我們定義的 JavaScript 方法對參數(shù)要求比較嚴格時,就可以用這樣的方式來編寫代碼。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 五原县| 高青县| 宁化县| 岳西县| 隆回县| 长顺县| 隆昌县| 应城市| 梅河口市| 新河县| 榆社县| 铜川市| 济南市| 连云港市| 炎陵县| 广水市| 隆林| 孝义市| 潢川县| 贵定县| 平度市| 翁牛特旗| 荣昌县| 永城市| 柞水县| 调兵山市| 渑池县| 收藏| 昌吉市| 旬阳县| 延长县| 昂仁县| 中山市| 略阳县| 余干县| 正蓝旗| 营口市| 卢氏县| 江都市| 修武县| 卢氏县|