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


Posted in Javascript onOctober 08, 2014

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

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

//表面上没有声明形式参数的函数

function fun() { 

alert("示例代码");

}

fun("小明", 100, true);//自己写了三个实际参数

通过结果我们看到,即使我们声明函数的时候没有定义形式参数,在调用方法的时候,我们也是可以写实际参数的。(实际上形式参数是写给程序员调用函数时看的)

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

//表面上没有声明形式参数的函数

function fun() {

alert(arguments[0]);//得到第一个实际参数的值。

alert(arguments[1]);//得到第二个实际参数的值。

alert(arguments[2]);//得到第三个实际参数的值。

alert(arguments.length);//得到实际参数的个数。

alert("示例代码");

}

fun("小明", 100, true);//自己写了三个实际参数

通过代码我们就可以知道arguments(内部属性) 本身是一个数组,其作用就是存放方法的实际参数。

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

function fun() {

if (arguments.length == 0) {

alert("执行没有实际参数的代码");

}

else if(arguments.length==1)

{

alert("执行传入一个实际参数的代码");

}

else if(arguments.length==2)

{

alert("执行传入两个实际参数的代码");

}

}

fun();

fun("小明");

fun("小明", "小花");
Javascript 相关文章推荐
jquery中常用的SET和GET$(”#msg”).html循环介绍
Oct 09 Javascript
JavaScript实现穷举排列(permutation)算法谜题解答
Dec 29 Javascript
CSS3实现动态背景登录框的代码
Jul 28 Javascript
模拟javascript中的sort排序(简单实例)
Aug 17 Javascript
jQuery实现花式轮播之圣诞节礼物传送效果
Dec 25 Javascript
javascript深拷贝和浅拷贝详解
Feb 14 Javascript
Vue 配合eiement动态路由,权限验证的方法
Sep 26 Javascript
在小程序开发中使用npm的方法
Oct 17 Javascript
详解基于webpack&gettext的前端多语言方案
Jan 29 Javascript
了解前端理论:rscss和rsjs
May 23 Javascript
JS中实现一个下载进度条及播放进度条的代码
Jun 10 Javascript
javascript中undefined的本质解析
Jul 31 Javascript
利用原生JavaScript获取元素样式只是获取而已
Oct 08 #Javascript
javascript学习笔记(八)正则表达式
Oct 08 #Javascript
javascript学习笔记(七)Ajax和Http状态码
Oct 08 #Javascript
javascript学习笔记(六)数据类型和JSON格式
Oct 08 #Javascript
javascript学习笔记(五)原型和原型链详解
Oct 08 #Javascript
JavaScript中获取高度和宽度函数总结
Oct 08 #Javascript
5个可以帮你理解JavaScript核心闭包和作用域的小例子
Oct 08 #Javascript
You might like
php 解压rar文件及zip文件的方法
2014/05/05 PHP
PHP连接SQLServer2005的方法
2015/01/27 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
2015/02/14 PHP
php实现统计目录文件大小的函数
2015/12/25 PHP
Yii2 RESTful中api的使用及开发实例详解
2016/07/06 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
js类中获取外部函数名的方法
2007/08/19 Javascript
一些经常会用到的Javascript检测函数
2010/05/31 Javascript
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
推荐40款强大的 jQuery 导航插件和教程(上篇)
2012/09/14 Javascript
鼠标滚轮控制网页横向移动实现思路
2013/03/22 Javascript
jQuery探测位置的提示弹窗(toolTip box)详细解析
2013/11/14 Javascript
js 去掉空格实例 Trim() LTrim() RTrim()
2014/01/07 Javascript
Javascript限制网页只能在微信内置浏览器中访问
2014/11/09 Javascript
Javascript毫秒数用法实例
2015/02/05 Javascript
异步加载JS、CSS代码(推荐)
2016/06/15 Javascript
jQuery基于ID调用指定iframe页面内的方法
2016/07/06 Javascript
JS实现页面载入时随机显示图片效果
2016/09/07 Javascript
js 性能优化之快速响应的用户界面
2017/02/15 Javascript
微信小程序实现image组件图片自适应宽度比例显示的方法
2018/01/16 Javascript
node.js express框架简介与实现
2019/07/23 Javascript
关于layui flow loading占位图的实现方法
2019/09/21 Javascript
如何利用Node.js与JSON搭建简单的动态服务器
2020/06/16 Javascript
[01:02:55]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
python动态加载变量示例分享
2014/02/17 Python
python使用循环打印所有三位数水仙花数的实例
2018/11/13 Python
django settings.py 配置文件及介绍
2019/07/15 Python
Python连接Oracle之环境配置、实例代码及报错解决方法详解
2020/02/11 Python
DataFrame 数据合并实现(merge,join,concat)
2020/06/14 Python
即兴演讲稿
2014/01/04 职场文书
网络程序员自荐信
2014/01/25 职场文书
安全承诺书范文
2014/03/26 职场文书
培训协议书范本
2014/04/22 职场文书
新闻报道策划方案
2014/06/11 职场文书
高一军训决心书
2015/02/05 职场文书
导游词之西江千户苗寨
2019/12/24 职场文书