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中parentNode,childNodes,children的应用详解
Dec 17 Javascript
JavaScript获取各大浏览器信息图示
Nov 20 Javascript
jQuery实例—选项卡的简单实现(js源码和jQuery)
Jun 14 Javascript
HTML5基于Tomcat 7.0实现WebSocket连接并实现简单的实时聊天
Oct 31 Javascript
利用vue-router实现二级菜单内容转换
Nov 30 Javascript
基于jQuery实现选项卡效果
Jan 04 Javascript
js用类封装pop弹窗组件
Oct 08 Javascript
bootstrap treeview 树形菜单带复选框及级联选择功能
Jun 08 Javascript
vue的keep-alive中使用EventBus的方法
Apr 23 Javascript
Vue 解决父组件跳转子路由后当前导航active样式消失问题
Jul 21 Javascript
浅谈JavaScript中的“!!”作用
Aug 03 Javascript
解决vue addRoutes不生效问题
Aug 04 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 is_file 判断给定文件名是否为一个正常的文件
2010/05/10 PHP
php Xdebug的安装与使用详解
2013/06/20 PHP
PHP独立Session数据库存储操作类分享
2014/06/11 PHP
Yii隐藏URL中index.php的方法
2016/07/12 PHP
redis+php实现微博(二)发布与关注功能详解
2019/09/23 PHP
javascript 关于# 和 void的区别分析
2009/10/26 Javascript
javascript 数组学习资料收集
2010/04/11 Javascript
dreamweaver 8实现Jquery自动提示
2014/12/04 Javascript
JavaScript汉诺塔问题解决方法
2015/04/21 Javascript
javascript获取网页宽高方法汇总
2015/07/19 Javascript
Vue组件和Route的生命周期实例详解
2018/02/10 Javascript
JS尾递归的实现方法及代码优化技巧
2019/01/19 Javascript
JS实现灯泡开关特效
2020/03/30 Javascript
JavaScript将数组转换为链表的方法
2020/02/16 Javascript
[07:20]2018DOTA2国际邀请赛寻真——逐梦Mineski
2018/08/10 DOTA
[01:01:24]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
30分钟搭建Python的Flask框架并在上面编写第一个应用
2015/03/30 Python
Python遍历文件夹和读写文件的实现方法
2017/05/10 Python
Python批量查询域名是否被注册过
2017/06/21 Python
Python下载网络文本数据到本地内存的四种实现方法示例
2018/02/05 Python
python实现知乎高颜值图片爬取
2019/08/12 Python
Python连接SQLite数据库并进行增册改查操作方法详解
2020/02/18 Python
韩国三星集团旗下时尚品牌官网:SSF SHOP
2016/08/02 全球购物
水芝澳美国官网:H2O Plus
2016/10/15 全球购物
英国鲜花递送:Blossoming Gifts
2020/07/10 全球购物
小学少先队活动方案
2014/02/18 职场文书
三项教育活动实施方案
2014/03/30 职场文书
小学毕业寄语大全
2014/04/03 职场文书
创先争优宣传标语
2014/10/08 职场文书
2014镇党委书记党建工作汇报材料
2014/11/02 职场文书
优秀党员先进材料
2014/12/18 职场文书
地道战观后感2000字
2015/06/04 职场文书
2016年清明节网上祭英烈活动总结
2016/04/01 职场文书
大学校园餐饮创业计划书
2019/08/07 职场文书
详解TS数字分隔符和更严格的类属性检查
2021/05/06 Javascript
python自动获取微信公众号最新文章的实现代码
2022/07/15 Python