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 相关文章推荐
纯JAVASCRIPT图表动画插件Highcharts Examples
Apr 16 Javascript
js中事件的处理与浏览器对象示例介绍
Nov 29 Javascript
JavaScript设计模式之工厂方法模式介绍
Dec 28 Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
Feb 19 Javascript
Bootstrap教程JS插件滚动监听学习笔记分享
May 18 Javascript
AngularJS应用开发思维之依赖注入3
Aug 19 Javascript
AngularJs html compiler详解及示例代码
Sep 01 Javascript
jQuery实现弹出窗口弹出div层的实例代码
Jan 09 Javascript
Vue 实现拖动滑块验证功能(只有css+js没有后台验证步骤)
Aug 24 Javascript
React生命周期原理与用法踩坑笔记
Apr 28 Javascript
微信小程序开发(一):服务器获取数据列表渲染操作示例
Jun 01 Javascript
解决Vue项目中tff报错的问题
Oct 21 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小教程之实现双向链表
2014/06/12 PHP
php通过前序遍历树实现无需递归的无限极分类
2015/07/10 PHP
thinkphp中的多表关联查询的实例详解
2017/10/12 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
jquery ui 1.7 ui.tabs 动态添加与关闭(按钮关闭+双击关闭)
2010/04/01 Javascript
通过JS自动隐藏手机浏览器的地址栏实现原理与代码
2013/01/02 Javascript
jQuery弹性滑动导航菜单实现思路及代码
2013/05/02 Javascript
js如何获取object类型里的键值
2014/02/18 Javascript
Jquery实现自定义窗口随意的拖拽
2014/03/12 Javascript
jquery进行数组遍历如何跳出当前的each循环
2014/06/05 Javascript
CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法
2015/05/12 Javascript
JQuery核心函数是什么及使用方法介绍
2016/05/03 Javascript
JavaScript编码风格指南(中文版)
2016/08/26 Javascript
微信小程序 教程之wxapp 视图容器 view
2016/10/19 Javascript
JavaScript实现自定义媒体播放器方法介绍
2017/01/03 Javascript
微信小程序 css使用技巧总结
2017/01/09 Javascript
jQuery UI仿淘宝搜索下拉列表功能
2017/01/10 Javascript
js仿微信公众平台打标签功能
2017/04/08 Javascript
简单的Python抓taobao图片爬虫
2014/10/26 Python
python调用机器喇叭发出蜂鸣声(Beep)的方法
2015/03/23 Python
Python生成器以及应用实例解析
2018/02/08 Python
对Django中内置的User模型实例详解
2019/08/16 Python
Python执行时间的几种计算方法
2020/07/31 Python
Fashion Eyewear美国:英国线上设计师眼镜和太阳镜的零售商
2016/08/15 全球购物
介绍一下Cookie和Session及他们之间的区别
2012/11/20 面试题
大学本科毕业生求职简历的自我评价
2013/10/09 职场文书
七匹狼男装广告词
2014/03/21 职场文书
无毒社区工作方案
2014/05/23 职场文书
优秀毕业生求职信
2014/06/05 职场文书
工作作风懒散检讨书
2014/10/29 职场文书
暑假安全保证书
2015/02/28 职场文书
社区文明倡议书
2015/04/28 职场文书
2015年十月一日放假通知
2015/08/18 职场文书
导游词之云南丽江古城
2019/09/17 职场文书
德生BCL3000抢先使用感受和评价
2022/04/07 无线电
Java实现HTML转为Word的示例代码
2022/06/28 Java/Android