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 相关文章推荐
分享一个自己写的table表格排序js插件(高效简洁)
Oct 29 Javascript
javascript贪吃蛇完整版(源码)
Dec 09 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
Aug 24 Javascript
js获取当前时间(昨天、今天、明天)
Nov 23 Javascript
基于bootstrap按钮式下拉菜单组件的搜索建议插件
Mar 25 Javascript
jQuery中clone()函数实现表单中增加和减少输入项
May 13 jQuery
vue实现验证码按钮倒计时功能
Apr 10 Javascript
关于js的三种使用方式(行内js、内部js、外部js)的程序代码
May 05 Javascript
微信小程序使用template标签实现五星评分功能
Nov 03 Javascript
JavaScript实现公告栏上下滚动效果
Mar 13 Javascript
vue.js+element 默认提示中英文操作
Nov 11 Javascript
js实现滚动条自动滚动
Dec 13 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连接Access数据库的方法小结
2013/06/20 PHP
php利用腾讯ip分享计划获取地理位置示例分享
2014/01/20 PHP
php中ob_get_length缓冲与获取缓冲长度实例
2014/11/20 PHP
php简单实现无限分类树形列表的方法
2015/03/27 PHP
ThinkPHP框架里隐藏index.php
2016/04/12 PHP
$()JS小技巧
2007/07/21 Javascript
XRegExp 0.2: Now With Named Capture
2007/11/30 Javascript
jquery实现兼容浏览器的图片上传本地预览功能
2013/10/14 Javascript
JavaScript中的undefined学习总结
2013/11/30 Javascript
Jquery 实现checkbox全选方法
2015/01/28 Javascript
学习JavaScript设计模式之单例模式
2016/01/19 Javascript
JavaScript统计字符串中每个字符出现次数完整实例
2016/01/28 Javascript
浅谈javascript中的Function和Arguments
2016/08/30 Javascript
javascript函数中的3个高级技巧
2016/09/22 Javascript
JS实现队列的先进先出功能示例
2017/05/10 Javascript
清空元素html("") innerHTML="" 与 empty()的区别和应用(推荐)
2017/08/14 Javascript
vue 国际化 vue-i18n 双语言 语言包
2018/06/07 Javascript
详解ES7 Decorator 入门解析
2019/02/18 Javascript
C#程序员入门学习微信小程序的笔记
2019/03/05 Javascript
vscode 使用Prettier插件格式化配置使用代码详解
2020/08/10 Javascript
vue Treeselect 树形下拉框:获取选中节点的ids和lables操作
2020/08/15 Javascript
jQuery实现推拉门效果
2020/10/19 jQuery
[55:02]2014 DOTA2国际邀请赛中国区预选赛 HGT VS Orenda
2014/05/21 DOTA
Python中elasticsearch插入和更新数据的实现方法
2018/04/01 Python
在Python中使用defaultdict初始化字典以及应用方法
2018/10/31 Python
通过python爬虫赚钱的方法
2019/01/29 Python
Python Handler处理器和自定义Opener原理详解
2020/03/05 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
2020/04/10 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
2020/05/27 Python
详解python百行有效代码实现汉诺塔小游戏(简约版)
2020/10/30 Python
10张动图学会python循环与递归问题
2021/02/06 Python
详解CSS3 rem(设置字体大小) 教程
2017/11/21 HTML / CSS
员工培训心得体会
2013/12/30 职场文书
社区网格化管理实施方案
2014/03/21 职场文书
会计演讲稿范文
2014/05/23 职场文书
红灯733-1型14管5波段半导体收音机
2021/04/22 无线电