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 相关文章推荐
解决遍历时Array.indexOf产生的性能问题
Jul 03 Javascript
Javascript自定义排序 node运行 实例
Jun 05 Javascript
javascript轻松实现当鼠标移开时已弹出子菜单自动消失
Dec 29 Javascript
用js判断输入是否为中文的函数
Mar 10 Javascript
form.submit()不能提交表单的原因分析
Oct 23 Javascript
jQuery 处理页面的事件详解
Jan 20 Javascript
JS更改select内option属性的方法
Oct 14 Javascript
详解JavaScript语言的基本语法要求
Nov 20 Javascript
jQuery实现ajax调用WCF服务的方法(附带demo下载)
Dec 04 Javascript
前端js中的事件循环eventloop机制详解
May 15 Javascript
React实现全选功能
Aug 25 Javascript
vue.js watch经常失效的场景与解决方案
Jan 07 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中的Streams详细介绍
2014/11/12 PHP
Yii2 assets清除缓存的方法
2016/05/16 PHP
PHP微信支付开发实例
2016/06/22 PHP
php下载文件超时时间的设置方法
2016/10/06 PHP
javascript网页关闭时提醒效果脚本
2008/10/22 Javascript
基于jQuery实现模拟页面加载进度条
2013/04/01 Javascript
鼠标滚轮改变图片大小的示例代码
2013/11/20 Javascript
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
纯javascript模仿微信打飞机小游戏
2015/08/20 Javascript
jquery实现叠层3D文字特效代码分享
2015/08/21 Javascript
基于Jquery制作图片文字排版预览效果附源码下载
2015/11/18 Javascript
jQuery实现的省市县三级联动菜单效果完整实例
2016/08/01 Javascript
微信小程序开发之圆形菜单 仿建行圆形菜单实例
2016/12/12 Javascript
三种方式实现瀑布流布局
2017/02/10 Javascript
Angularjs 实现移动端在线测评效果(推荐)
2017/04/05 Javascript
nodejs开发微信小程序实现密码加密
2017/07/11 NodeJs
vue组件学习教程
2017/09/09 Javascript
简单谈谈js的数据类型
2017/09/25 Javascript
React router动态加载组件之适配器模式的应用详解
2018/09/12 Javascript
vue.js实现简单购物车功能
2020/05/30 Javascript
JavaScript 事件代理需要注意的地方
2020/09/08 Javascript
Python中的进程分支fork和exec详解
2015/04/11 Python
Python的Flask框架标配模板引擎Jinja2的使用教程
2016/07/12 Python
使用Python写CUDA程序的方法
2017/03/27 Python
Python实现的快速排序算法详解
2017/08/01 Python
Python实现基于二叉树存储结构的堆排序算法示例
2017/12/08 Python
Python使用装饰器进行django开发实例代码
2018/02/06 Python
python3的UnicodeDecodeError解决方法
2019/12/20 Python
Python figure参数及subplot子图绘制代码
2020/04/18 Python
英国和世界各地鲜花速递专家:Arena Flowers
2018/02/10 全球购物
SKECHERS斯凯奇中国官网:来自美国的运动休闲品牌
2018/11/14 全球购物
护士试用期自我鉴定
2014/02/08 职场文书
市委常委会班子党的群众路线教育实践活动整改方案
2014/10/25 职场文书
2015年会计个人工作总结
2015/04/02 职场文书
大学体育课感想
2015/08/10 职场文书
承诺书的内容有哪些,怎么写?
2019/06/21 职场文书