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库还是自己写代码?
Jan 28 Javascript
js操作textarea 常用方法总结
Dec 03 Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
Dec 15 Javascript
在线所见即所得HTML编辑器的实现原理浅析
Apr 25 Javascript
JS 实现倒计时数字时钟效果【附实例代码】
Mar 30 Javascript
Bootstrap每天必学之折叠
Apr 12 Javascript
深入理解JavaScript内置函数
Jun 03 Javascript
JQuery DIV 动态隐藏和显示的方法
Jun 23 Javascript
Javascript ES6中对象类型Sets的介绍与使用详解
Jul 17 Javascript
Vue中的异步组件函数实现代码
Jul 20 Javascript
vue中各种通信传值方式总结
Feb 14 Javascript
JS如何寻找数组中心索引过程解析
Jun 01 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
apache php模块整合操作指南
2012/11/16 PHP
析构函数与php的垃圾回收机制详解
2013/10/28 PHP
php通过curl添加cookie伪造登陆抓取数据的方法
2016/04/02 PHP
PHP 绘制网站登录首页图片验证码
2016/04/12 PHP
thinkphp 中的volist标签在ajax操作中的特殊性(推荐)
2018/01/15 PHP
js获取客户端网卡的IP地址、MAC地址
2014/03/26 Javascript
jQuery filter函数使用方法
2014/05/19 Javascript
深入理解javascript变量声明
2014/11/20 Javascript
JavaScript模块规范之AMD规范和CMD规范
2015/10/27 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
BOM系列第三篇之定时器应用(时钟、倒计时、秒表和闹钟)
2016/08/17 Javascript
原生JS实现几个常用DOM操作API实例
2017/01/19 Javascript
jQuery实现获取h1-h6标题元素值的方法
2017/03/06 Javascript
轻松玩转BootstrapTable(后端使用SpringMVC+Hibernate)
2017/09/06 Javascript
工作中常用到的ES6语法
2018/09/04 Javascript
Element UI框架中巧用树选择器的实现
2018/12/12 Javascript
JavaScript深入V8引擎以及编写优化代码的5个技巧
2019/06/24 Javascript
解决vue与node模版引擎的渲染标记{{}}(双花括号)冲突问题
2020/09/11 Javascript
[02:20]DOTA2中文配音宣传片
2013/05/22 DOTA
[01:15:45]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第一局
2016/02/26 DOTA
python采用requests库模拟登录和抓取数据的简单示例
2014/07/05 Python
Python字符串处理之count()方法的使用
2015/05/18 Python
详解Python3中的Sequence type的使用
2015/08/01 Python
Python中模块pymysql查询结果后如何获取字段列表
2017/06/05 Python
python+influxdb+shell编写区域网络状况表
2018/07/27 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
2019/03/05 Python
基于python生成器封装的协程类
2019/03/20 Python
HTML5之语义标签介绍
2016/07/07 HTML / CSS
合伙协议书
2014/04/23 职场文书
难忘的一天教学反思
2014/04/30 职场文书
预备党员转正考核材料
2014/06/03 职场文书
合作与交流自我评价
2015/03/09 职场文书
消防演习通知
2015/04/25 职场文书
2015年党员岗位承诺书
2015/04/27 职场文书
同步小康驻村工作简报
2015/07/20 职场文书
反邪教教育心得体会
2016/01/15 职场文书