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 Validation插件remote验证方式的Bug解决
Jul 01 Javascript
JQuery 拾色器插件发布-jquery.icolor.js
Oct 20 Javascript
EasyUI的treegrid组件动态加载数据问题的解决办法
Dec 11 Javascript
jquery隐藏标签和显示标签的实例
Nov 11 Javascript
jQuery子窗体取得父窗体元素的方法
May 11 Javascript
JS实现的另类手风琴效果网页内容切换代码
Sep 08 Javascript
JavaScript小技巧整理篇(非常全)
Jan 26 Javascript
KnockoutJS 3.X API 第四章之表单submit、enable、disable绑定
Oct 10 Javascript
Vue v2.5 调整和更新不完全问题
Oct 24 Javascript
vue中echarts引入中国地图的案例
Jul 28 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
Oct 19 Javascript
Nuxt的路由动画效果案例
Nov 06 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中获取文件扩展名的N种方法小结
2012/02/27 PHP
解析array splice的移除数组中指定键的值,返回一个新的数组
2013/07/02 PHP
PHP实现查询两个数组中不同元素的方法
2016/02/23 PHP
JavaScript的parseInt 进制问题
2009/05/07 Javascript
jcarousellite.js 基于Jquery的图片无缝滚动插件
2010/12/30 Javascript
jquery清空textarea等输入框实现代码
2013/04/22 Javascript
js清除input中type等于file的值域(示例代码)
2013/12/24 Javascript
JavaScript编程的10个实用小技巧
2014/04/18 Javascript
js实现同一页面多个不同运动效果的方法
2015/04/10 Javascript
jQuery实现的简单提示信息插件
2015/12/08 Javascript
jquery实现列表上下移动功能
2016/02/25 Javascript
分分钟玩转Vue.js组件
2016/10/25 Javascript
如何在Angular.JS中接收并下载PDF
2016/11/26 Javascript
NodeJs下的测试框架Mocha的简单介绍
2017/02/22 NodeJs
js鼠标跟随运动效果
2017/03/11 Javascript
关于Vue Webpack2单元测试示例详解
2017/08/14 Javascript
小程序实现人脸识别功能(百度ai)
2018/12/23 Javascript
[55:16]Mski vs VGJ.S Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
浅析Python中将单词首字母大写的capitalize()方法
2015/05/18 Python
一个基于flask的web应用诞生 用户注册功能开发(5)
2017/04/11 Python
Python3网络爬虫之使用User Agent和代理IP隐藏身份
2017/11/23 Python
使用Python向C语言的链接库传递数组、结构体、指针类型的数据
2019/01/29 Python
Python 实用技巧之利用Shell通配符做字符串匹配
2019/08/23 Python
python清空命令行方式
2020/01/13 Python
Python实现对adb命令封装
2020/03/06 Python
对python中return与yield的区别详解
2020/03/12 Python
Python面向对象程序设计之私有变量,私有方法原理与用法分析
2020/03/23 Python
Lacoste澳大利亚官网:服装、鞋类及配饰
2018/11/14 全球购物
在校生汽车维修实习自我鉴定
2013/09/19 职场文书
技校毕业生个人学习的自我评价
2014/02/21 职场文书
《月球之谜》教学反思
2014/04/10 职场文书
初三开学计划书
2014/04/27 职场文书
纪念九一八爱国演讲稿600字
2014/09/14 职场文书
2014年全国爱牙日宣传活动方案
2014/09/21 职场文书
个人公司授权委托书范本
2014/10/12 职场文书
校友回访母校寄语
2015/02/26 职场文书