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中的对象 推荐
Jan 09 Javascript
javascript+xml实现简单图片轮换(只支持IE)
Dec 23 Javascript
jquery 判断滚动条到达了底部和顶端的方法
Apr 02 Javascript
jquery插件qrcode在线生成二维码
Apr 26 Javascript
jquery ztree实现树的搜索功能
Feb 25 Javascript
AngularJS控制器继承自另一控制器
May 09 Javascript
深入理解jQuery 事件处理
Jun 14 Javascript
jQuery层次选择器用法示例
Sep 09 Javascript
详解Js模板引擎(TrimPath)
Nov 22 Javascript
基于vue cli重构多页面脚手架过程详解
Jan 23 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
Oct 25 Javascript
使用Vant完成DatetimePicker 日期的选择器操作
Nov 12 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
实用函数5
2007/11/08 PHP
php 多个submit提交表单 处理方法
2009/07/07 PHP
PHP 面向对象实现代码
2009/11/11 PHP
php实现MySQL数据库备份与还原类实例
2014/12/09 PHP
PHP测试成功的邮件发送案例
2015/10/26 PHP
PHP中创建和编辑Excel表格的方法
2018/09/13 PHP
深入解析PHP底层机制及相关原理
2020/12/11 PHP
两个select之间option的互相添加操作(jquery实现)
2009/11/12 Javascript
Javascript四舍五入Math.round()与Math.pow()使用介绍
2013/12/27 Javascript
JavaScript中输出标签的方法
2014/08/27 Javascript
jQuery检测滚动条是否到达底部
2015/12/15 Javascript
Windows系统下安装Node.js的步骤图文详解
2016/11/15 Javascript
JavaScript对象封装的简单实现方法(3种方法)
2017/01/03 Javascript
Node.js连接mongodb实例代码
2017/06/06 Javascript
JavaScript之DOM_动力节点Java学院整理
2017/07/03 Javascript
vue中SPA单页面应用程序详解
2017/11/07 Javascript
浅谈Koa2框架利用CORS完成跨域ajax请求
2018/03/06 Javascript
详解node Async/Await 更好的异步编程解决方案
2018/05/10 Javascript
小程序两种滚动公告栏的实现方法
2019/09/17 Javascript
JavaScript 类的封装操作示例详解
2020/05/16 Javascript
[01:11:10]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG加赛
2014/05/26 DOTA
python从入门到精通(DAY 2)
2015/12/20 Python
基于Python socket的端口扫描程序实例代码
2018/02/09 Python
spark dataframe 将一列展开,把该列所有值都变成新列的方法
2019/01/29 Python
Python递归函数实例讲解
2019/02/27 Python
django解决订单并发问题【推荐】
2019/07/31 Python
python tkinter图形界面代码统计工具
2019/09/18 Python
python数值基础知识浅析
2019/11/19 Python
Python实现汇率转换操作
2020/05/03 Python
python3.9实现pyinstaller打包python文件成exe
2020/12/13 Python
CSS3 3D位移translate效果实例介绍
2016/05/03 HTML / CSS
澳大利亚领先的在线机械五金、园艺和存储专家:Edisons
2018/03/24 全球购物
大学毕业感言一句话
2014/02/06 职场文书
会计员岗位职责
2014/03/15 职场文书
社区国庆节活动总结
2015/03/23 职场文书
研讨会致辞
2015/07/31 职场文书