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来解决ajax读取页面乱码
Nov 28 Javascript
微信小程序三级联动选择器使用方法
May 19 Javascript
Node.js成为Web应用开发最佳选择的原因
Feb 05 Javascript
在Vue中使用echarts的方法
Feb 05 Javascript
es6新特性之 class 基本用法解析
May 05 Javascript
vue自动化表单实例分析
May 06 Javascript
JS基于封装函数实现的表格分页完整示例
Jun 26 Javascript
详解js的视频和音频采集
Aug 09 Javascript
微信小程序日历组件使用方法详解
Dec 29 Javascript
如何使用less实现随机下雪动画详解
Jan 02 Javascript
JQuery搜索框自动补全(模糊匹配)功能实现示例
Jan 08 jQuery
微信小程序之高德地图多点路线规划过程示例详解
Jan 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基础知识:函数基础知识
2006/12/13 PHP
php二分法在IP地址查询中的应用
2008/08/12 PHP
PHPWind 发帖回帖Api PHP版打包下载
2010/02/08 PHP
深入PHP中慎用双等于(==)的详解
2013/06/06 PHP
PHP开发框架kohana3 自定义路由设置示例
2014/07/14 PHP
php获取文章上一页与下一页的方法
2014/12/01 PHP
PHP 99乘法表的几种实现代码
2020/10/13 PHP
从JavaScript的函数重名看其初始化方式
2007/03/08 Javascript
jQuery的学习步骤
2011/02/23 Javascript
jQuery实现锚点scoll效果实例分析
2015/03/10 Javascript
js精美的幻灯片画集特效代码分享
2015/08/29 Javascript
JS短信验证码倒计时功能的实现(没有验证码,只有倒计时)
2016/10/27 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
2016/12/03 Javascript
原生js实现简单的链式操作
2017/07/04 Javascript
完美实现js拖拽效果 return false用法详解
2017/07/28 Javascript
Angularjs实现下拉框联动的示例代码
2017/08/22 Javascript
解决vue中虚拟dom,无法实时更新的问题
2018/09/15 Javascript
谈谈JavaScript中super(props)的重要性
2019/02/12 Javascript
js实现ajax的用户简单登入功能
2020/06/18 Javascript
vue下载二进制流图片操作
2020/10/26 Javascript
Python探索之SocketServer详解
2017/10/28 Python
对Python中9种生成新对象的方法总结
2018/05/23 Python
pandas 空的dataframe 插入列名的示例
2018/10/30 Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
2019/11/08 Python
python离线安装外部依赖包的实现
2020/02/13 Python
Django实现后台上传并显示图片功能
2020/05/29 Python
个人收入证明范本
2014/01/12 职场文书
《月迹》教学反思
2014/02/19 职场文书
读书演讲主持词
2014/03/18 职场文书
优秀高中学生评语
2014/12/30 职场文书
医务人员医德考评自我评价
2015/03/03 职场文书
2015年禁毒宣传活动总结
2015/03/25 职场文书
预备党员考察意见范文
2015/06/01 职场文书
迁徙的鸟观后感
2015/06/09 职场文书
浅谈Python数学建模之数据导入
2021/06/23 Python
MySQL索引是啥?不懂就问
2021/07/21 MySQL