//用一个变量类型列表严格检查一个参数列表
function strict(types,args){
//保证参数的数量和类型的数量匹配
if(types.length !== args.length){
throw '变量类型列表长度:'+types.length+'和参数列表长度:'+args.length+'不相等' ;
}
//遍历所有参数,检查它们的类型
for(var i=0,len=args.length; i<len; i++ ){
if(args[i].constructor != types[i]){
throw args[i]+'不是'+types[i].name+'类型';
}
}
}
//输出列表的函数
function ulList(str,num,array){
//检查参数类型,str必须为字符串,num必须为数字型,array必须为数组
strict([String,Number,Array],arguments);
for(var i=0; i<num; i++){
console.log(str+':'+array[i]);
}
}
ulList('list',6,['a','b','c','d','e','f']);
输出:
list:a
list:b
list:c
list:d
list:e
list:f