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 相关文章推荐
打造基于jQuery的高性能TreeView(asp.net)
Feb 23 Javascript
ajax的hide隐藏问题解决方法
Dec 11 Javascript
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
Apr 29 Javascript
jQuery学习心得总结(必看篇)
Jun 10 Javascript
JS递归遍历对象获得Value值方法技巧
Jun 14 Javascript
使用伪命名空间封装保护独自创建的对象方法
Aug 04 Javascript
js初始化验证实例详解
Nov 26 Javascript
基于vue的下拉刷新指令和滚动刷新指令
Dec 23 Javascript
jQuery插件Validation表单验证详解
May 26 jQuery
vue通过指令(directives)实现点击空白处收起下拉框
Dec 06 Javascript
node.js学习笔记之koa框架和简单爬虫练习
Dec 13 Javascript
mapboxgl区划标签避让不遮盖实现的代码详解
Jul 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
php mssql 日期出现中文字符的解决方法
2009/03/10 PHP
PHP之数组学习
2011/05/29 PHP
PHP PDOStatement::debugDumpParams讲解
2019/01/30 PHP
CSS+JS构建的图片查看器
2006/07/22 Javascript
js网页侧边随页面滚动广告效果实现
2011/04/14 Javascript
JQuery中对服务器控件 DropdownList, RadioButtonList, CheckboxList的操作总结
2011/06/28 Javascript
JQuery+CSS实现图片上放置按钮的方法
2015/05/29 Javascript
js和jquery分别验证单选框、复选框、下拉框
2015/12/17 Javascript
JS+CSS实现闪烁字体效果代码
2016/04/05 Javascript
sso跨域写cookie的一段js脚本(推荐)
2016/05/25 Javascript
全面解析JavaScript中的valueOf与toString方法(推荐)
2016/06/14 Javascript
探索Vue.js component内容实现
2016/11/03 Javascript
如何实现json数据可视化详解
2016/11/24 Javascript
Vue数据驱动模拟实现2
2017/01/11 Javascript
Node.js常用工具之util模块
2017/03/09 Javascript
vue插件vue-resource的使用笔记(小结)
2017/08/04 Javascript
vue-router 手势滑动触发返回功能
2018/09/30 Javascript
JS使用Prim算法和Kruskal算法实现最小生成树
2019/01/17 Javascript
vue elementui el-form rules动态验证的实例代码详解
2019/05/23 Javascript
layui button 按钮弹出提示窗口,确定才进行的方法
2019/09/06 Javascript
详解JavaScript的this指向和绑定
2020/09/08 Javascript
python简单读取大文件的方法
2016/07/01 Python
Python实现的选择排序算法示例
2017/11/29 Python
Python中pip更新和三方插件安装说明
2018/07/08 Python
使用python 写一个静态服务(实战)
2019/06/28 Python
如何用Python做一个微信机器人自动拉群
2019/07/03 Python
Django微信小程序后台开发教程的实现
2020/06/03 Python
Spring @Enable模块驱动原理及使用实例
2020/06/23 Python
CSS3制作半透明边框(Facebox)类似渐变
2012/12/09 HTML / CSS
html5实现多图片预览上传及点击可拖拽控件
2018/03/15 HTML / CSS
为什么使用接口?
2014/08/13 面试题
大学生见习期满自我鉴定
2014/09/13 职场文书
保证金退回承诺函格式
2015/01/21 职场文书
走进毛泽东观后感
2015/06/04 职场文书
催款函范文
2015/06/24 职场文书
Arthas排查Kubernetes中应用频繁挂掉重启异常
2022/02/28 MySQL