JavaScript重载函数实例剖析


Posted in Javascript onMay 13, 2016

1.javascript 中是没有重载函数这个概念的!

首先javascript是没有重载函数这个概念的,很久以前,我用javascript做网页的时候,写一些简单的效果,根本不需要用到重载函数,当写游戏的时候,有大量的函数的时候,就想用重载函数了,没想到javascript不支持。

我们来简单用两种方式来"模拟"下重载函数。

2.根据参数的个数来判断

javascript的函数中有一个叫arguments的变量,是记录参数的一个数组,我们可以用这个来判断参数的个数,然后分别执行不同的内容,就是同一个函数可以有不同效果,跟C++等强类型语言的重载函数还是相差很大。你可以这样写,参数全部注释掉,告诉使用函数者,这个函数最多支持3个参数,具体参数在函数里面再获取。支持重载函数的注释一定要多写点,这样会清晰些,最好附上调用例子。

/**
* Return sum of a and b and less than limitNumber
* @param {Number} a
* @param {Number} b
* @param {Number} limitNumber
*/
function add(/*a, b, limitNumber*/){
var a,b,limitNumber;
a = arguments[0];
b = arguments[1];
if(arguments.length == 3){
limitNumber = arguments[2];
if(a + b > limitNumber){
return limitNumber;
}
}
return a + b;
}

3.根据参数类型不同来判断

javascript有一个关键字叫typeof,可以判断出一个变量的类型。

var temp = "say"; //string
var temp = 1; //number
var temp = undefined; //undefined
var temp = null; //object
var temp = {}; //object
var temp = []; //object
var temp = true; //boolean
var temp = function (){} //function 
function testFunction(a){
if(typeof(a) == "number"){
//do something
}else if(typeof(a) == "string"){
//do something
}
}

以上内容是小编给大家介绍的javascript重载函数的相关知识,感兴趣的朋友一起学习吧!

Javascript 相关文章推荐
ext for eclipse插件安装方法
Apr 27 Javascript
8款非常棒的响应式jQuery 幻灯片插件推荐
Feb 02 Javascript
Node.js中HTTP模块与事件模块详解
Nov 14 Javascript
JS 对象属性相关(检查属性、枚举属性等)
Apr 05 Javascript
JavaScript中的getMilliseconds()方法使用详解
Jun 10 Javascript
JS实现动态表格的添加,修改,删除功能(推荐)
Jun 15 Javascript
图解prototype、proto和constructor的三角关系
Jul 31 Javascript
node.js基于mongodb的搜索分页示例
Jan 22 Javascript
js实现动态添加上传文件页面
Oct 22 Javascript
微信小程序中的video视频实现 自定义播放按钮、封面图、视频封面上文案
Jan 02 Javascript
Vue中登录验证成功后保存token,并每次请求携带并验证token操作
Sep 08 Javascript
Vue实现小购物车功能
Dec 21 Vue.js
JS加载iFrame出现空白问题的解决办法
May 13 #Javascript
基于JS判断iframe是否加载成功的方法(多种浏览器)
May 13 #Javascript
JS iFrame加载慢怎么解决
May 13 #Javascript
基于JS实现的笛卡尔乘积之商品发布
May 13 #Javascript
基于jQuery倒计时插件实现团购秒杀效果
May 13 #Javascript
js获取鼠标点击的对象,点击另一个按钮删除该对象的实现代码
May 13 #Javascript
最简单的tab切换实例代码
May 13 #Javascript
You might like
PHPMailer邮件类利用smtp.163.com发送邮件方法
2008/09/11 PHP
php中解析带中文字符的url函数分享
2015/01/20 PHP
php常用图片处理类
2016/03/16 PHP
Yii2创建表单(ActiveForm)方法详解
2016/07/23 PHP
详解php中 === 的使用
2016/10/24 PHP
PHP中的日期时间处理利器实例(Carbon)
2017/06/09 PHP
php数据序列化测试实例详解
2017/08/12 PHP
关于laravel 子查询 & join的使用
2019/10/16 PHP
setTimeout和setInterval的浏览器兼容性分析
2007/02/27 Javascript
node.js应用后台守护进程管理器Forever安装和使用实例
2014/06/01 Javascript
JavaScript创建对象的方式小结(4种方式)
2015/12/17 Javascript
jquery淡入淡出效果简单实例
2016/01/14 Javascript
JS给Array添加是否包含字符串的简单方法
2016/10/29 Javascript
Windows系统下安装Node.js的步骤图文详解
2016/11/15 Javascript
JQuery中Ajax的操作完整例子
2017/03/07 Javascript
很棒的vue弹窗组件
2017/05/24 Javascript
jQuery.form.js的使用详解
2017/06/14 jQuery
通过js动态创建标签,并设置属性方法
2018/02/24 Javascript
vue axios 在页面切换时中断请求方法 ajax
2018/03/05 Javascript
使用react render props实现倒计时的示例代码
2018/12/06 Javascript
taro开发微信小程序的实践
2019/05/21 Javascript
Nodejs环境实现socket通信过程解析
2020/07/03 NodeJs
Python实现压缩与解压gzip大文件的方法
2016/09/18 Python
利用python模拟实现POST请求提交图片的方法
2017/07/25 Python
Django csrf 两种方法设置form的实例
2019/02/03 Python
PySide和PyQt加载ui文件的两种方法
2019/02/27 Python
Python3 使用pillow库生成随机验证码
2019/08/26 Python
2021年的Python 时间轴和即将推出的功能详解
2020/07/27 Python
Python通过字典映射函数实现switch
2020/11/06 Python
澳大利亚潮流尖端的快时尚品牌:Cotton On
2016/09/26 全球购物
英国鹦鹉店:Parrot Essentials
2018/12/03 全球购物
毕业班联欢会主持词
2014/03/27 职场文书
小学校园广播稿集锦
2014/10/04 职场文书
党员教师群众路线个人整改措施
2014/10/28 职场文书
征求意见函
2015/06/05 职场文书
python三子棋游戏
2022/05/04 Python