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 参数中的数组展开 [译]
Sep 21 Javascript
浅析JavaScript中的typeof运算符
Nov 30 Javascript
js 针对html DOM元素操作等经验累积
Mar 11 Javascript
js实现按钮控制图片360度翻转特效的方法
Feb 17 Javascript
使用AngularJS来实现HTML页面嵌套的方法
Jun 17 Javascript
jquery实现简单的全选和反选功能
Jan 02 Javascript
基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化
May 12 Javascript
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
May 15 jQuery
详解使用webpack打包编写一个vue-toast插件
Nov 08 Javascript
vue实现与安卓、IOS交互的方法
Nov 02 Javascript
详细教你微信公众号正文页SVG交互开发技巧
Jul 25 Javascript
js实现的订阅发布者模式简单示例
Mar 14 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日期时间函数的高级应用技巧
2009/05/16 PHP
php 获取客户端的真实ip
2009/11/30 PHP
APACHE的AcceptPathInfo指令使用介绍
2013/01/18 PHP
PHP可变函数学习小结
2015/11/29 PHP
Laravel框架源码解析之入口文件原理分析
2020/05/14 PHP
JavaScript 设计模式 安全沙箱模式
2010/09/24 Javascript
jQuery中验证表单提交方式及序列化表单内容的实现
2014/01/06 Javascript
详解JavaScript函数对象
2015/11/15 Javascript
jQuery获取剪贴板内容的方法
2016/06/16 Javascript
jquery easyUI中ajax异步校验用户名
2016/08/19 Javascript
阿里云ecs服务器中安装部署node.js的步骤
2016/10/08 Javascript
使用JSON作为函数的参数的优缺点
2016/10/27 Javascript
vue2.0 computed 计算list循环后累加值的实例
2018/03/07 Javascript
Vue.js 中 axios 跨域访问错误问题及解决方法
2018/11/21 Javascript
微信小程序HTTP接口请求封装代码实例
2019/09/05 Javascript
微信小程序连接服务器展示MQTT数据信息的实现
2020/07/14 Javascript
[04:03][TI9趣味短片] 小鸽子茶话会
2019/08/20 DOTA
python使用urllib2模块获取gravatar头像实例
2013/12/18 Python
Python实现合并字典的方法
2015/07/07 Python
Python之Web框架Django项目搭建全过程
2017/05/02 Python
python实现趣味图片字符化
2019/04/30 Python
python实现的按要求生成手机号功能示例
2019/10/08 Python
Python文本处理简单易懂方法解析
2019/12/19 Python
css3学习之2D转换功能详解
2016/12/23 HTML / CSS
详解Canvas实用库Fabric.js使用手册
2019/01/07 HTML / CSS
美国休闲服装品牌:Express
2016/09/24 全球购物
美国椅子和沙发制造商:La-Z-Boy
2020/10/25 全球购物
文件中有一组整数,要求排序后输出到另一个文件中
2012/01/04 面试题
竞选文艺委员演讲稿
2014/04/28 职场文书
工会趣味活动方案
2014/08/18 职场文书
员工试用期自我鉴定范文
2014/09/15 职场文书
2014银行领导班子群众路线对照检查材料思想汇报
2014/09/17 职场文书
领导班子四风对照检查材料范文
2014/09/27 职场文书
2015年幼儿园后勤工作总结
2015/04/25 职场文书
2016大一新生入学教育心得体会
2016/01/23 职场文书
中学音乐课教学反思
2016/02/18 职场文书