javascript中通过arguments参数伪装方法重载

在很多面向对象的高级语言中,都有方法的重载。而javascript没有方法重载这个概念。但是我们可以通过arguments这个参数来伪装成函数的重载

在模拟之前我们先看一下代码

代码如下:
函数 function fun() { alert("示例代码"); } fun("小明",100,true);//自己写了三个实际参数
通过结果我们看到,即使我们声明函数的时候没有定义形式参数,在调用方法的时候,我们也是可以写实际参数的。(实际上形式参数是写给程序员调用函数时看的)

我们可以在代码中可以得到实际参数吗?答案是肯定的:请看代码

代码如下:
函数 function fun() { alert(arguments[0]);//得到第一个实际参数的值。 alert(arguments[1]);//得到第二个实际参数的值。 alert(arguments[2]);//得到第三个实际参数的值。 alert(arguments.length);//得到实际参数的个数。 alert("示例代码"); } fun("小明",true);//自己写了三个实际参数
通过代码我们就可以知道arguments(内部属性) 本身是一个数组,其作用就是存放方法的实际参数。

有了以上知识点后,模拟方法重载就有思路了。我们可以通过实际参数的个数来作个判断,从而执行不同的逻辑代码。简单代码如下:

代码如下:
代码"); } else if(arguments.length==1) { alert("执行传入一个实际参数的代码"); } else if(arguments.length==2) { alert("执行传入两个实际参数的代码"); } } fun(); fun("小明"); fun("小明","小花");

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...