JavaScript 的方法重载效果_Javascript教程-查字典教程网
JavaScript 的方法重载效果
JavaScript 的方法重载效果
发布时间:2016-12-30 来源:查字典编辑
摘要:在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教程学习
    编程开发子分类