手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >JavaScript 的方法重载效果
JavaScript 的方法重载效果
摘要:在JavaScript的方法内,有个叫做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 方法对参数要求比较严格时,就可以用这样的方式来编写代码。

【JavaScript 的方法重载效果】相关文章:

JavaScript实现带标题的图片轮播特效

在JavaScript的正则表达式中使用exec()方法

Javascript中的Prototype到底是什么

JavaScript数组去重的3种方法和代码实例

JavaScript深度复制(deep clone)的实现方法

Javascript动态创建表格及删除行列的方法

JavaScript中valueOf()方法的使用介绍

JavaScript容易犯错的九个陷阱

简述JavaScript中正则表达式的使用方法

javascript实时显示当天日期的方法

精品推荐
分类导航