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 相关文章推荐
代码生成器 document.write()
Apr 15 Javascript
深入理解javascript中return的作用
Dec 30 Javascript
原生javascript实现的分页插件pagenav
Aug 28 Javascript
基于jquery实现左右按钮点击的图片切换效果
Jan 27 Javascript
AngularJS中的过滤器filter用法完全解析
Apr 22 Javascript
BootStrap无限级分类(无限极分类封装版)
Aug 26 Javascript
基于JavaScript实现右键菜单和拖拽功能
Nov 28 Javascript
JS仿京东移动端手指拨动切换轮播图效果
Apr 10 Javascript
微信小程序中顶部导航栏的实现代码
Mar 30 Javascript
初探JavaScript 面向对象(推荐)
Sep 03 Javascript
jQuery 实现DOM元素拖拽交换位置的实例代码
Jul 14 jQuery
VueCli生产环境打包部署跨域失败的解决
Nov 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
Protoss建筑一览
2020/03/14 星际争霸
Win9x/ME下Apache+PHP安装配置
2006/10/09 PHP
利用PHP和AJAX创建RSS聚合器的代码
2007/03/13 PHP
jqgrid 简单学习笔记
2011/05/03 Javascript
javascript闭包的高级使用方法实例
2013/07/04 Javascript
javascript获取下拉列表框当中的文本值示例代码
2013/07/31 Javascript
jquery及js实现动态加载js文件的方法
2016/01/21 Javascript
浅谈js中对象的使用
2016/08/11 Javascript
JS之相等操作符详解
2016/09/13 Javascript
使用BootStrap实现表格隔行变色及hover变色并在需要时出现滚动条
2017/01/04 Javascript
javascript常用经典算法详解
2017/01/11 Javascript
babel基本使用详解
2017/02/17 Javascript
详述 Sublime Text 打开 GBK 格式中文乱码的解决方法
2017/10/26 Javascript
jq.ajax+php+mysql实现关键字模糊查询(示例讲解)
2018/01/02 Javascript
vue-cli3.0配置及使用注意事项详解
2018/09/05 Javascript
解决vue移动端适配问题
2018/12/12 Javascript
vue设计一个倒计时秒杀的组件详解
2019/04/06 Javascript
AjaxFileUpload.js实现异步上传文件功能
2019/04/19 Javascript
解决layui 表单元素radio不显示渲染的问题
2019/09/04 Javascript
[02:03]风行者至宝清风环佩外观展示
2020/09/05 DOTA
python中bisect模块用法实例
2014/09/25 Python
Python中datetime模块参考手册
2017/01/13 Python
python文本数据相似度的度量
2018/03/12 Python
使用python3实现操作串口详解
2019/01/01 Python
解决Python paramiko 模块远程执行ssh 命令 nohup 不生效的问题
2020/07/14 Python
移动端html5模拟长按事件的实现方法
2018/09/30 HTML / CSS
巴西网上药房:onofre
2016/11/21 全球购物
香港最新科技与优质家居产品购物网站:J SELECT
2018/08/21 全球购物
Tomcat Mysql datasource数据源配置
2015/12/28 面试题
EJB实例的生命周期
2016/10/28 面试题
关于运动会的稿件
2014/02/02 职场文书
优秀班集体获奖感言
2014/02/03 职场文书
营销总监岗位职责范本
2014/02/26 职场文书
2019年中,最受大众欢迎的6本新书
2019/08/07 职场文书
电脑开机弹出documents文件夹怎么回事?弹出documents文件夹解决方法
2022/04/08 数码科技
Golang 并发编程 SingleFlight模式
2022/04/26 Golang