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 相关文章推荐
固定表格行列(expression)在IE下适用
Jul 25 Javascript
基于jquery实现的文字淡入淡出效果
Nov 14 Javascript
Jquery 点击按钮自动高亮实现原理及代码
Apr 25 Javascript
javascript实现2048游戏示例
May 04 Javascript
jQuery插件EnPlaceholder实现输入框提示文字
Jun 05 Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
Jan 08 Javascript
jQuery实现打开页面渐现效果示例
Jul 27 Javascript
浅谈通过JS拦截 pushState和replaceState事件
Jul 21 Javascript
基于滚动条位置判断的简单实例
Dec 14 Javascript
JS实现的JSON数组去重算法示例
Apr 11 Javascript
小程序实现简单语音聊天的示例代码
Jul 24 Javascript
关于Vue中的options选项
Mar 22 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
php获取网页请求状态程序示例
2014/06/17 PHP
详解php实现页面静态化原理
2017/06/21 PHP
window.open的功能全解析
2006/10/10 Javascript
javascript Array.sort() 跨浏览器下需要考虑的问题
2009/12/07 Javascript
JQuery实现带排序功能的权限选择实例
2015/05/18 Javascript
jQuery.each使用详解
2015/07/07 Javascript
jQuery实现的产品自动360度旋转展示特效源码分享
2015/08/21 Javascript
js中json处理总结之JSON.parse
2016/10/14 Javascript
vue.js指令v-model使用方法
2017/03/20 Javascript
JavaScript输入框字数实时统计更新
2017/06/17 Javascript
Vue中引入样式文件的方法
2017/08/18 Javascript
nodejs基于express实现文件上传的方法
2018/03/19 NodeJs
React中Ref 的使用方法详解
2020/04/28 Javascript
[04:09]显微镜下的DOTA2第十二期—NaVi美如画的团战
2014/06/23 DOTA
python好玩的项目—色情图片识别代码分享
2017/11/07 Python
python 删除非空文件夹的实例
2018/04/26 Python
Tensorflow分类器项目自定义数据读入的实现
2019/02/05 Python
Python 如何提高元组的可读性
2019/08/26 Python
pygame实现俄罗斯方块游戏(基础篇2)
2019/10/29 Python
python装饰器原理与用法深入详解
2019/12/19 Python
基于梯度爆炸的解决方法:clip gradient
2020/02/04 Python
python+requests接口自动化框架的实现
2020/08/31 Python
解决pip安装的第三方包在PyCharm无法导入的问题
2020/10/15 Python
马来西亚网上花店:FlowerAdvisor马来西亚
2020/01/03 全球购物
银行职员个人的工作自我评价
2014/02/15 职场文书
国际会计专业求职信
2014/08/04 职场文书
股东授权委托书范文
2014/09/13 职场文书
落实八项规定专题民主生活会对照检查材料
2014/09/15 职场文书
大专毕业生自我鉴定范文(2篇)
2014/09/27 职场文书
税务干部个人整改措施思想汇报
2014/10/10 职场文书
2014初中数学教研组工作总结
2014/12/19 职场文书
超市员工辞职信范文
2015/05/12 职场文书
党员发展大会主持词
2015/07/03 职场文书
求职信如何撰写?
2019/05/22 职场文书
Pytest中skip和skipif的具体使用方法
2021/06/30 Python
zabbix 代理服务器的部署与 zabbix-snmp 监控问题
2022/07/15 Servers