JavaScript 的方法重载效果
作者:bea
在 JavaScript 的方法内,有个叫做 arguments 的变量数组,它是只读的,所有实际传入的参数变量都 放在了里面,通过它,我们可以对传入的参数进行类型检查,从而实现重载的效果。 判断一个变量的类型有两种方法。 1,用 typeof 语句: 代码如下: function check(){ if(typeof arguments[0] == 'string') alert('你传入的参数是个字符串'); else if(typeof arguments[
在 JavaScript 的方法内,有个叫做 arguments 的变量数组,它是只读的,所有实际传入的参数变量都
放在了里面,通过它,我们可以对传入的参数进行类型检查,从而实现重载的效果。
判断一个变量的类型有两种方法。
1,用 typeof 语句:
代码如下:
function check(){
if(typeof arguments[0] == 'string')
alert('你传入的参数是个字符串');
else if(typeof arguments[0] == 'number')
alert('你传入的参数是个数字');
}
2,用所有 JavaScript 变量都带有的一个属性 constructor,这个属性指向用来构造该变量的构造函数:
代码如下:
function check(){
if(arguments[0].constructor == String)
alert('你传入的参数是个字符串');
else if(arguments[0].constructor == Number)
alert('你传入的参数是个数字');
}
对照表:
typeof constructor
---------------------------
string String
number Number
object Object
function Function
boolean Boolean
object Array
object User
通过这个对照表可以看出用 typeof 不能准确的判断出具体的类型,所以我们用 constructor 来进行判
断。
首先我们定义一个用来判断参数类型和个数的方法
代码如下:
function checkArgs(types,args){
// 检查参数个数
if(types.length != args.length){
return false;
}
// 检查参数类型
for(var i=0; i<args.length; i++){
if(args[i].constructor != types[i]){
return false;
}
}
return true;
}
我们定义一个方法对上面的方法进行应用
代码如下:
function show(){
// 处理参数是一个字符串的调用
if(checkArgs([String],arguments)){
alert(arguments[0]);
}
// 处理参数是一个字符串和一个数字的调用
else if(checkArgs([String,Number],arguments)){
var s = '';
for(var i=0; i<arguments[1]; i++){
s+=arguments[0];
}
alert(s);
// 参数不符合要求时,给予提示
}else{
alert('不支持的参数');
}
}
当我们定义的 JavaScript 方法对参数要求比较严格时,就可以用这样的方式来编写代码。
有用 | 无用
放在了里面,通过它,我们可以对传入的参数进行类型检查,从而实现重载的效果。
判断一个变量的类型有两种方法。
1,用 typeof 语句:
代码如下:
function check(){
if(typeof arguments[0] == 'string')
alert('你传入的参数是个字符串');
else if(typeof arguments[0] == 'number')
alert('你传入的参数是个数字');
}
2,用所有 JavaScript 变量都带有的一个属性 constructor,这个属性指向用来构造该变量的构造函数:
代码如下:
function check(){
if(arguments[0].constructor == String)
alert('你传入的参数是个字符串');
else if(arguments[0].constructor == Number)
alert('你传入的参数是个数字');
}
对照表:
typeof constructor
---------------------------
string String
number Number
object Object
function Function
boolean Boolean
object Array
object User
通过这个对照表可以看出用 typeof 不能准确的判断出具体的类型,所以我们用 constructor 来进行判
断。
首先我们定义一个用来判断参数类型和个数的方法
代码如下:
function checkArgs(types,args){
// 检查参数个数
if(types.length != args.length){
return false;
}
// 检查参数类型
for(var i=0; i<args.length; i++){
if(args[i].constructor != types[i]){
return false;
}
}
return true;
}
我们定义一个方法对上面的方法进行应用
代码如下:
function show(){
// 处理参数是一个字符串的调用
if(checkArgs([String],arguments)){
alert(arguments[0]);
}
// 处理参数是一个字符串和一个数字的调用
else if(checkArgs([String,Number],arguments)){
var s = '';
for(var i=0; i<arguments[1]; i++){
s+=arguments[0];
}
alert(s);
// 参数不符合要求时,给予提示
}else{
alert('不支持的参数');
}
}
当我们定义的 JavaScript 方法对参数要求比较严格时,就可以用这样的方式来编写代码。
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- img标签中onerror用法
- 什么是JavaScript
- Javascript Global对象
- Javascript Math对象
- Javascript 作用域使用说明
- Javascript 继承机制实例
- Javascript 继承机制的实现
- Javascript 继承实现例子
- 一些不错的JS 自定义函数
- JavaScript 十六进制RGB色码转换器
- JQuery jsonp 使用示例代码
- Javascript array类 数组操作方法
- 上传图片时JS自动显示图片
- Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
- javascript 当前日期加(天、周、月、年)
- javascript 局部页面打印实现代码
- jQuery 解析xml文件
- ext 代码生成器
- JavaScript 变量作用域及闭包