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 相关文章推荐
JavaScript Event学习第十章 一些可替换的事件对
Feb 10 Javascript
基于jQuery的弹出框插件
Mar 18 Javascript
JQuery给元素添加/删除节点比如select
Apr 02 Javascript
JavaScript全排列的六种算法 具体实现
Jun 29 Javascript
js的window.showModalDialog及window.open用法实例分析
Jan 29 Javascript
JavaScript中计算网页中某个元素的位置
Jun 10 Javascript
必备的JS调试技巧汇总
Jul 20 Javascript
Ionic3实现图片瀑布流布局
Aug 09 Javascript
原生JS与jQuery编写简单选项卡
Oct 30 jQuery
JavaScript 继承 封装 多态实现及原理详解
Jul 29 Javascript
js判断非127开头的IP地址的实例代码
Jan 05 Javascript
如何使用vue3打造一个物料库
May 08 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
多人战的战术与战略
2020/03/04 星际争霸
提高PHP编程效率的方法
2013/11/07 PHP
javascript 基础篇2 数据类型,语句,函数
2012/03/14 Javascript
解析javascript系统错误:-1072896658的解决办法
2013/07/08 Javascript
js判断iframe内的网页是否滚动到底部触发事件
2014/03/18 Javascript
node.js中的fs.mkdirSync方法使用说明
2014/12/17 Javascript
javascript实现在网页任意处点左键弹出隐藏菜单的方法
2015/05/13 Javascript
Bootstrap基础学习
2015/06/16 Javascript
jQuery操作iframe中js函数的方法小结
2016/07/06 Javascript
vue2.0获取自定义属性的值
2017/03/28 Javascript
浅谈vue2 单页面如何设置网页title
2017/11/08 Javascript
JS中Map和ForEach的区别
2018/02/05 Javascript
解决js相同的正则多次调用test()返回的值却不同的问题
2018/10/10 Javascript
微信小程序云开发详细教程
2019/05/16 Javascript
扫微信小程序码实现网站登陆实现解析
2019/08/20 Javascript
原生JS实现天气预报
2020/06/16 Javascript
Vue使用轮询定时发送请求代码
2020/08/10 Javascript
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:EE凭借法力虚空拿下4杀
2017/03/30 DOTA
python线程池的实现实例
2013/11/18 Python
python映射列表实例分析
2015/01/26 Python
Python 正则表达式入门(中级篇)
2016/12/07 Python
Python Collatz序列实现过程解析
2019/10/12 Python
Python猴子补丁知识点总结
2020/01/05 Python
关于Theano和Tensorflow多GPU使用问题
2020/06/19 Python
深入浅析Python代码规范性检测
2020/07/31 Python
如何将anaconda安装配置的mmdetection环境离线拷贝到另一台电脑
2020/10/15 Python
CSS3制作炫酷带方向感应的鼠标滑过图片3D动画
2016/03/16 HTML / CSS
日本非常有名的内衣丝袜品牌:GUNZE
2017/01/06 全球购物
H&M旗下高端女装品牌:& Other Stories
2018/05/07 全球购物
同程旅游英文网站:LY.com
2018/11/13 全球购物
本科生个人求职自荐信
2013/09/26 职场文书
医学生毕业自我鉴定
2014/03/26 职场文书
部队反四风对照检查材料
2014/09/26 职场文书
先进个人材料怎么写
2014/12/30 职场文书
2015年敬老院工作总结
2015/05/18 职场文书
《陶罐和铁罐》教学反思
2016/03/03 职场文书