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 遍历对象中的子对象
Jul 03 Javascript
JS 日期验证正则附asp日期格式化函数
Sep 11 Javascript
jquery 表单取值常用代码
Dec 22 Javascript
Javascript this 的一些学习总结
Aug 02 Javascript
IE浏览器中图片onload事件无效的解决方法
Apr 29 Javascript
BootStrap中
Dec 10 Javascript
Jqprint实现页面打印
Jan 06 Javascript
用jQuery实现优酷首页轮播图
Jan 09 Javascript
vue 项目常用加载器及配置详解
Jan 22 Javascript
JS实现的集合去重,交集,并集,差集功能示例
Mar 13 Javascript
vue-router history模式下的微信分享小结
Jul 05 Javascript
微信小程序 image组件遇到的问题
May 28 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日历[测试通过]
2008/03/27 PHP
PHP入门学习的几个不错的实例代码
2008/07/13 PHP
使用php实现网站验证码功能【推荐】
2017/02/09 PHP
JavaScript Undefined,Null类型和NaN值区别
2008/10/22 Javascript
jquery zTree异步加载简单实例分享
2013/02/05 Javascript
javascript创建动态表单的方法
2015/07/25 Javascript
javascript实现2016新年版日历
2016/01/25 Javascript
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
2016/03/25 Javascript
jquery动态切换背景图片的简单实现方法
2016/05/14 Javascript
jQuery中get方法用法分析
2016/12/07 Javascript
JS实战篇之收缩菜单表单布局
2016/12/10 Javascript
JS原型与原型链的深入理解
2017/02/15 Javascript
支持移动端原生js轮播图
2017/02/16 Javascript
jQuery按需加载轮播图(web前端性能优化)
2017/02/17 Javascript
详解webpack 多入口配置
2017/06/16 Javascript
JS运动特效之同时运动实现方法分析
2018/01/24 Javascript
nginx+vue.js实现前后端分离的示例代码
2018/02/12 Javascript
jQuery--遍历操作实例小结【后代、同胞及过滤】
2020/05/22 jQuery
如何在vue-cli中使用css-loader实现css module
2021/01/07 Vue.js
[15:57]教你分分钟做大人:斧王
2014/10/30 DOTA
Python中的zip函数使用示例
2015/01/29 Python
python getopt详解及简单实例
2016/12/30 Python
Django 根据数据模型models创建数据表的实例
2018/05/27 Python
Python单元测试与测试用例简析
2019/11/09 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
2020/04/30 Python
详细分析Python可变对象和不可变对象
2020/07/09 Python
浅谈matplotlib 绘制梯度下降求解过程
2020/07/12 Python
教师自我鉴定范文
2013/11/10 职场文书
研究生考核个人自我鉴定
2014/03/27 职场文书
2014年教师政治学习材料
2014/06/02 职场文书
本科毕业生求职信
2014/06/15 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
初三毕业感言
2015/07/31 职场文书
创业计划书之熟食店
2019/10/16 职场文书
JavaScript中document.activeELement焦点元素介绍
2021/11/27 Javascript
什么是css原子化,有什么用?
2022/04/24 HTML / CSS