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 操作符整理[推荐收藏]
Nov 15 Javascript
Jquery实现地铁线路指示灯提示牌效果的方法
Mar 02 Javascript
jQuery组件easyui基本布局实现代码
Aug 25 Javascript
jQuery.ajax实现根据不同的Content-Type做出不同的响应
Nov 03 Javascript
使用cropper.js裁剪头像的实例代码
Sep 29 Javascript
element 结合vue 在表单验证时有值却提示错误的解决办法
Jan 22 Javascript
JS实现关键词高亮显示正则匹配
Jun 22 Javascript
Vue实现双向绑定的原理以及响应式数据的方法
Jul 02 Javascript
Vue分页器实现原理详解
Jun 28 Javascript
浅谈bootstrap layer.open中end的使用方法
Sep 12 Javascript
jQuery HTML设置内容和属性操作实例分析
May 20 jQuery
js实现带积分弹球小游戏
Jul 21 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批量生成随机用户名
2008/07/10 PHP
调试一段PHP程序时遇到的三个问题
2012/01/17 PHP
php socket客户端及服务器端应用实例
2014/07/04 PHP
PHP 实现代码复用的一个方法 traits新特性
2015/02/22 PHP
PHP简单创建压缩图的方法
2016/08/24 PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
2017/03/14 PHP
基于PHP实现解密或加密Cloudflar邮箱保护
2020/06/24 PHP
仿服务器端脚本方式的JS模板实现方法
2007/04/27 Javascript
自定义jQuery选项卡插件实例
2013/03/27 Javascript
jQuery中.live()方法的用法深入解析
2013/12/30 Javascript
简介JavaScript中Math.LOG10E属性的使用
2015/06/14 Javascript
浅谈js里面的InttoStr和StrtoInt
2016/06/14 Javascript
Vue组件BootPage实现简单的分页功能
2016/09/12 Javascript
微信小程序 wx.request(接口调用方式)详解及实例
2016/11/23 Javascript
angular 基于ng-messages的表单验证实例
2017/05/04 Javascript
微信小程序websocket实现聊天功能
2020/03/30 Javascript
Vue绑定内联样式问题
2018/10/17 Javascript
微信小程序自定义可滑动顶部TabBar选项卡实现页面切换功能示例
2019/05/14 Javascript
区分vue-router的hash和history模式
2020/10/03 Javascript
[06:45]2018DOTA2亚洲邀请赛 4.5 SOLO赛 Sccc vs Maybe
2018/04/06 DOTA
Python的动态重新封装的教程
2015/04/11 Python
Python常用库推荐
2016/12/04 Python
python3+PyQt5 数据库编程--增删改实例
2019/06/17 Python
python多进程并发demo实例解析
2019/12/13 Python
python将音频进行变速的操作方法
2020/04/08 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
2020/10/22 Python
python中的时区问题
2021/01/14 Python
numpy实现RNN原理实现
2021/03/02 Python
html5服务器推送_动力节点Java学院整理
2017/07/12 HTML / CSS
欧缇丽英国官方网站:Caudalie英国
2016/08/17 全球购物
服务生自我鉴定
2014/01/22 职场文书
中青班党性分析材料
2014/02/16 职场文书
表决心的诗句大全
2014/03/11 职场文书
春季防火方案
2014/05/10 职场文书
党员廉洁自律承诺书
2014/05/26 职场文书
小学新教师个人总结
2015/02/05 职场文书