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 相关文章推荐
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
Aug 13 Javascript
在chrome中window.onload事件的一些问题
Mar 01 Javascript
javascript自然分类法算法实现代码
Oct 11 Javascript
jQuery中Chosen三级联动功能实例代码
Mar 07 Javascript
如何编写jquery插件
Mar 29 jQuery
Vue2.0 从零开始_环境搭建操作步骤
Jun 14 Javascript
详解webpack异步加载业务模块
Jun 23 Javascript
js微信分享实现代码
Oct 11 Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
May 16 Javascript
Javascript实现秒表倒计时功能
Nov 17 Javascript
vscode调试node.js的实现方法
Mar 22 Javascript
Antd-vue Table组件添加Click事件,实现点击某行数据教程
Nov 17 Javascript
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 strtr() 函数使用说明
2008/11/21 PHP
PHP array操作10个小技巧分享
2011/06/23 PHP
PHP+MYSQL中文乱码问题
2015/07/01 PHP
CodeIgniter与PHP5.6的兼容问题
2015/07/16 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
2018/08/21 PHP
用javascript实现自定义标签
2007/05/08 Javascript
js中判断文本框是否为空的两种方法
2011/07/31 Javascript
javascript中onmouse事件在div中失效问题的解决方法
2012/01/09 Javascript
JS多物体 任意值 链式 缓冲运动
2012/08/10 Javascript
完美解决AJAX跨域问题
2013/11/01 Javascript
JS去掉第一个字符和最后一个字符的实现代码
2014/02/20 Javascript
jQuery操作DOM之获取表单控件的值
2015/01/23 Javascript
JavaScript转换二进制编码为ASCII码的方法
2015/04/16 Javascript
jQuery Validate初步体验(一)
2015/12/12 Javascript
响应式表格之固定表头的简单实现
2016/08/26 Javascript
backbone简介_动力节点Java学院整理
2017/07/14 Javascript
AngularJS的$location使用方法详解
2017/10/19 Javascript
JS实现的图片选择顺序切换和循环切换功能示例【测试可用】
2018/12/28 Javascript
jsonp格式前端发送和后台接受写法的代码详解
2019/11/07 Javascript
封装一下vue中的axios示例代码详解
2020/02/16 Javascript
[02:41]辉夜杯现场一家三口 “我爸玩风行 我玩血魔”
2015/12/27 DOTA
python脚本监控docker容器
2016/04/27 Python
python安装模块如何通过setup.py安装(超简单)
2018/05/05 Python
django用户登录和注销的实现方法
2018/07/16 Python
Python使用googletrans报错的解决方法
2018/09/25 Python
了解不常见但是实用的Python技巧
2019/05/23 Python
英国在线电子和小工具商店:TecoBuy
2018/10/06 全球购物
Eton丹麦官网:精美的男式衬衫
2020/05/27 全球购物
非功能性需求都包括哪些方面
2013/10/29 面试题
竞聘上岗演讲稿
2014/05/16 职场文书
励志演讲稿500字
2014/08/21 职场文书
工厂采购员岗位职责
2015/04/07 职场文书
少年派的奇幻漂流观后感
2015/06/08 职场文书
女性健康讲座主持词
2015/07/04 职场文书
Mysql关于数据库是否应该使用外键约束详解说明
2021/10/24 MySQL
MySQL利用UNION连接2个查询排序失效详解
2021/11/20 MySQL