html5中文学习网

您的位置: 首页 > 网站及特效实例 > javascript特效 » 正文

javascript中通过arguments参数伪装方法重载_javascript技巧_

[ ] 已经帮助:人解决问题

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

在模拟之前我们先看一下代码:CKuHTML5中文学习网 - HTML5先行者学习网

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

我们可以在代码中可以得到实际参数吗?答案是肯定的:请看代码:CKuHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
CKuHTML5中文学习网 - HTML5先行者学习网
//表面上没有声明形式参数的函数CKuHTML5中文学习网 - HTML5先行者学习网
function fun() {CKuHTML5中文学习网 - HTML5先行者学习网
alert(arguments[0]);//得到第一个实际参数的值。CKuHTML5中文学习网 - HTML5先行者学习网
alert(arguments[1]);//得到第二个实际参数的值。CKuHTML5中文学习网 - HTML5先行者学习网
alert(arguments[2]);//得到第三个实际参数的值。CKuHTML5中文学习网 - HTML5先行者学习网
alert(arguments.length);//得到实际参数的个数。CKuHTML5中文学习网 - HTML5先行者学习网
alert("示例代码");CKuHTML5中文学习网 - HTML5先行者学习网
}CKuHTML5中文学习网 - HTML5先行者学习网
fun("小明", 100, true);//自己写了三个实际参数CKuHTML5中文学习网 - HTML5先行者学习网
CKuHTML5中文学习网 - HTML5先行者学习网
通过代码我们就可以知道arguments(内部属性) 本身是一个数组,其作用就是存放方法的实际参数。CKuHTML5中文学习网 - HTML5先行者学习网

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

复制代码 代码如下:
CKuHTML5中文学习网 - HTML5先行者学习网
function fun() {CKuHTML5中文学习网 - HTML5先行者学习网
if (arguments.length == 0) {CKuHTML5中文学习网 - HTML5先行者学习网
alert("执行没有实际参数的代码");CKuHTML5中文学习网 - HTML5先行者学习网
}CKuHTML5中文学习网 - HTML5先行者学习网
else if(arguments.length==1)CKuHTML5中文学习网 - HTML5先行者学习网
{CKuHTML5中文学习网 - HTML5先行者学习网
alert("执行传入一个实际参数的代码");CKuHTML5中文学习网 - HTML5先行者学习网
}CKuHTML5中文学习网 - HTML5先行者学习网
else if(arguments.length==2)CKuHTML5中文学习网 - HTML5先行者学习网
{CKuHTML5中文学习网 - HTML5先行者学习网
alert("执行传入两个实际参数的代码");CKuHTML5中文学习网 - HTML5先行者学习网
}CKuHTML5中文学习网 - HTML5先行者学习网
}CKuHTML5中文学习网 - HTML5先行者学习网
fun();CKuHTML5中文学习网 - HTML5先行者学习网
fun("小明");CKuHTML5中文学习网 - HTML5先行者学习网
fun("小明", "小花");CKuHTML5中文学习网 - HTML5先行者学习网
CKuHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助