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系列之数值计算
Jun 07 Javascript
javascript实例分享---具有立体效果的图片特效
Jun 08 Javascript
js中style.display=""无效的解决方法
Oct 30 Javascript
setTimeout内不支持jquery的选择器的解决方案
Apr 28 Javascript
Javascript原型链的原理详解
Jan 05 Javascript
JS中的forEach、$.each、map方法推荐
Apr 05 Javascript
jQuery 监控键盘一段时间没输入
Apr 22 Javascript
jQuery使用each方法与for语句遍历数组示例
Jun 16 Javascript
vue和react等项目中更简单的实现展开收起更多等效果示例
Feb 22 Javascript
JavaScript实现异步图像上传功能
Jul 12 Javascript
layui清除radio的选中状态实例
Nov 14 Javascript
关于better-scroll插件的无法滑动bug(2021通过插件解决)
Mar 01 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
优化NFR之一 --MSSQL Hello Buffer Overflow
2006/10/09 PHP
jq的get传参数在utf-8中乱码问题的解决php版
2008/07/23 PHP
PHP 实用代码收集
2010/01/22 PHP
php笔记之常用文件操作
2010/10/12 PHP
解决jquery的.animate()函数在IE6下的问题
2010/12/03 Javascript
鼠标滚轮控制网页横向移动实现思路
2013/03/22 Javascript
深入理解JQuery keyUp和keyDown的区别
2013/12/12 Javascript
PHP和NodeJs开发的应用如何共用Session
2015/04/16 NodeJs
js操作css属性实现div层展开关闭效果的方法
2015/05/11 Javascript
简介JavaScript中POSITIVE_INFINITY值的使用
2015/06/05 Javascript
layui导航栏实现代码
2017/05/19 Javascript
彻底解决 webpack 打包文件体积过大问题
2017/07/07 Javascript
js使用highlight.js高亮你的代码
2017/08/18 Javascript
如何在Vue中使用CleaveJS格式化你的输入内容
2018/12/14 Javascript
Vue中img的src是动态渲染时不显示的解决
2019/11/14 Javascript
布同自制Python函数帮助查询小工具
2011/03/13 Python
基于python3 OpenCV3实现静态图片人脸识别
2018/05/25 Python
python实现简单图片物体标注工具
2019/03/18 Python
Django 返回json数据的实现示例
2020/03/05 Python
解决python中import文件夹下面py文件报错问题
2020/06/01 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
2020/07/05 Python
Python Request类源码实现方法及原理解析
2020/08/17 Python
详解HTML5中rel属性的prefetch预加载功能使用
2016/05/06 HTML / CSS
Engel & Bengel官网:婴儿推车、儿童房家具和婴儿设备
2019/12/28 全球购物
新郎父亲婚宴答谢词
2014/01/11 职场文书
医院竞聘演讲稿
2014/05/16 职场文书
人民调解员培训方案
2014/06/05 职场文书
2014年妇联工作总结
2014/11/21 职场文书
老乡聚会通知
2015/04/23 职场文书
天堂的孩子观后感
2015/06/11 职场文书
呼啸山庄读书笔记
2015/06/29 职场文书
导游词之云南丽江-泸沽湖
2019/09/26 职场文书
高一作文之暖冬
2019/11/09 职场文书
jQuery class属性操作addClass()与removeClass()、hasClass()、toggleClass()
2021/03/31 jQuery
Python Socket编程详解
2021/04/25 Python
Python Django项目和应用的创建详解
2021/11/27 Python