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 相关文章推荐
鼠标经过的文本框textbox变色
May 21 Javascript
Prototype RegExp对象 学习
Jul 19 Javascript
用最通俗易懂的代码帮助新手理解javascript闭包 推荐
Mar 01 Javascript
基于mootools插件实现遮罩层新手引导
May 24 Javascript
javascript定时变换图片实例代码
Mar 17 Javascript
jQuery动画animate方法使用介绍
May 06 Javascript
基于jquery实现的文字淡入淡出效果
Nov 14 Javascript
JS实现模仿微博发布效果实例代码
Dec 16 Javascript
javascript Array 数组常用方法
Apr 05 Javascript
微信jssdk用法汇总
Jul 16 Javascript
jQuery自定义图片上传插件实例代码
Apr 04 jQuery
JavaScript工具库MyTools详解
Jan 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 skymvc 一款轻量、简单的php
2011/06/28 PHP
php中使用preg_replace函数匹配图片并加上链接的方法
2013/02/06 PHP
PHP大批量插入数据库的3种方法和速度对比
2014/07/08 PHP
php.ini中date.timezone设置详解
2016/11/20 PHP
laravel框架关于搜索功能的实现
2018/03/15 PHP
php中数组最简单的使用方法
2020/12/27 PHP
Javascript 生成指定范围数值随机数
2009/01/09 Javascript
jquery的ajaxSubmit()异步上传图片并保存表单数据演示代码
2013/06/04 Javascript
JQuery结合CSS操作打印样式的方法
2013/12/24 Javascript
js设置文本框中焦点位置在最后的示例代码(简单实用)
2014/03/04 Javascript
js获取域名的方法
2015/01/27 Javascript
jquery控制显示服务器生成的图片流
2015/08/04 Javascript
Jquery效果大全之制作电脑健康体检得分特效附源码下载
2015/11/02 Javascript
JavaScript实现数据类型的相互转换
2016/03/06 Javascript
jQuery设置图片等比例缩小的方法
2017/04/29 jQuery
浅谈vue的几种绑定变量的值 防止其改变的方法
2018/03/01 Javascript
js原生map实现的方法总结
2020/01/19 Javascript
解决ant Design Search无法输入内容的问题
2020/10/29 Javascript
vue $router和$route的区别详解
2020/12/02 Vue.js
在Python的Django框架中用流响应生成CSV文件的教程
2015/05/02 Python
Python实现向服务器请求压缩数据及解压缩数据的方法示例
2017/06/09 Python
基于Python中capitalize()与title()的区别详解
2017/12/09 Python
Python之两种模式的生产者消费者模型详解
2018/10/26 Python
让你Python到很爽的加速递归函数的装饰器
2019/05/26 Python
你可能不知道的Python 技巧小结
2020/01/29 Python
Django 解决distinct无法去除重复数据的问题
2020/05/20 Python
美国宠物用品网站:Value Pet Supplies
2018/03/17 全球购物
高校学生干部的自我评价分享
2013/11/04 职场文书
葡萄牙语专业个人求职信
2013/12/10 职场文书
医院总经理岗位职责
2014/02/04 职场文书
青年安全生产示范岗事迹材料
2014/05/04 职场文书
小学生感恩父母演讲稿
2014/08/28 职场文书
2014年办公室主任工作总结
2014/11/12 职场文书
酒店保洁员岗位职责
2015/02/26 职场文书
后勤工作个人总结
2015/02/28 职场文书
python生成随机数、随机字符、随机字符串
2021/04/06 Python