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 相关文章推荐
JQuery的ajax获取数据后的处理总结(html,xml,json)
Jul 14 Javascript
基于jquery实现图片广告轮换效果代码
Jul 07 Javascript
JavaScript转换农历类实现及调用方法
Jan 27 Javascript
jquery.Ajax()方法调用Asp.Net后台的方法解析
Feb 13 Javascript
用JavaScript实现使用鼠标画线的示例代码
Aug 19 Javascript
JS+CSS实现大气的黑色首页导航菜单效果代码
Sep 10 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
Aug 24 Javascript
vue动态组件实现选项卡切换效果
Mar 08 Javascript
JavaScrip数组删除特定元素的几种方法总结
Sep 06 Javascript
红黑树的插入详解及Javascript实现方法示例
Mar 26 Javascript
基于 vue-skeleton-webpack-plugin 的骨架屏实战
Aug 05 Javascript
vue任意关系组件通信与跨组件监听状态vue-communication
Oct 18 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使之能同时支持GIF和JPEG
2006/10/09 PHP
PHP DataGrid 实现代码
2009/08/12 PHP
PHP中time(),date(),mktime()区别介绍
2013/09/28 PHP
php实现parent调用父类的构造方法与被覆写的方法
2015/02/11 PHP
Yii2分页的使用及其扩展方法详解
2016/05/23 PHP
PHP实现的简单在线计算器功能示例
2017/08/02 PHP
PHP实现数据库的增删查改功能及完整代码
2018/04/18 PHP
JavaScript 事件对象的实现
2009/07/13 Javascript
jQuery :nth-child前有无空格的区别分析
2011/07/11 Javascript
javascript实现信息增删改查的方法
2015/07/25 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
2016/06/21 Javascript
浅谈Angular的$q, defer, promise
2016/12/20 Javascript
jQuery实现简单漂亮的Nav导航菜单效果
2017/03/29 jQuery
JavaScript实现简单的四则运算计算器完整实例
2017/04/28 Javascript
详解Angular2中Input和Output用法及示例
2017/05/21 Javascript
Node.js 基础教程之全局对象
2017/08/06 Javascript
Vue 后台管理类项目兼容IE9+的方法示例
2019/02/20 Javascript
JavaScript判断浏览器运行环境的详细方法
2019/06/30 Javascript
Vue.js实现立体计算器
2020/02/22 Javascript
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:EE凭借法力虚空拿下4杀
2017/03/30 DOTA
python BeautifulSoup使用方法详解
2013/11/21 Python
零基础写python爬虫之打包生成exe文件
2014/11/06 Python
Python 关于反射和类的特殊成员方法
2017/09/14 Python
Python WXPY实现微信监控报警功能的代码
2017/10/20 Python
django模型层(model)进行建表、查询与删除的基础教程
2017/11/21 Python
Numpy数组array和矩阵matrix转换方法
2019/08/05 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
2020/01/08 Python
python 如何将office文件转换为PDF
2020/09/22 Python
使用Python爬取Json数据的示例代码
2020/12/07 Python
宣传口号大全
2014/06/16 职场文书
团日活动总结模板
2014/06/25 职场文书
怎样写离婚协议书
2014/09/10 职场文书
企业催款函范本
2015/06/24 职场文书
2015初中政教处工作总结
2015/07/21 职场文书
python3.9之你应该知道的新特性详解
2021/04/29 Python
关于antd tree 和父子组件之间的传值问题(react 总结)
2021/06/02 Javascript