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功能的正确方法(译文)
Apr 12 Javascript
不同Jquery版本引发的问题解决
Oct 14 Javascript
javascript根据时间生成m位随机数最大13位
Oct 30 Javascript
Javascript基础之数组的使用
May 13 Javascript
在localStorage中存储对象数组并读取的方法
Sep 24 Javascript
js实现对table的增加行和删除行的操作方法
Oct 13 Javascript
原生js实现addclass,removeclass,toggleclasss实例
Nov 24 Javascript
简单理解js的prototype属性及使用
Dec 07 Javascript
jQuery实现字符串全部替换的方法【推荐】
Mar 09 Javascript
jquery.uploadView 实现图片预览上传功能
Aug 10 jQuery
vue实现搜索过滤效果
May 28 Javascript
js前端面试常见浏览器缓存强缓存及协商缓存实例
Jun 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
example2.php
2006/10/09 PHP
php的命名空间与自动加载实现方法
2019/08/25 PHP
Javascript注入技巧
2007/06/22 Javascript
JavaScript 判断指定字符串是否为有效数字
2010/05/11 Javascript
windows系统下简单nodejs安装及环境配置
2013/01/08 NodeJs
JS数组去重与取重的示例代码
2014/01/24 Javascript
javascript中的__defineGetter__和__defineSetter__介绍
2014/08/15 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形网络(1)
2015/11/30 Javascript
jQuery四种选择器使用及示例
2016/06/05 Javascript
Vuejs 用$emit与$on来进行兄弟组件之间的数据传输通信
2017/02/23 Javascript
react-native-tab-navigator组件的基本使用示例代码
2017/09/07 Javascript
vue slot 在子组件中显示父组件传递的模板
2018/03/02 Javascript
webpack项目轻松混用css module的方法
2018/06/12 Javascript
Three.js实现3D机房效果
2018/12/30 Javascript
angular 表单验证器验证的同时限制输入的实现
2019/04/11 Javascript
javascript设计模式 ? 访问者模式原理与用法实例分析
2020/04/26 Javascript
JS获取当前时间戳方法解析
2020/08/29 Javascript
Node.js fs模块原理及常见用途
2020/10/22 Javascript
JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法
2021/01/29 Javascript
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
2017/07/20 Python
Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
2019/02/26 Python
python 自定义装饰器实例详解
2019/07/20 Python
Django 项目重命名的实现步骤解析
2019/08/14 Python
python-地图可视化组件folium的操作
2020/12/14 Python
用CSS3实现无限循环的无缝滚动的实例代码
2017/07/04 HTML / CSS
Top Villas美国:豪华别墅出租和度假屋
2018/07/10 全球购物
大三学生入党思想汇报
2014/01/02 职场文书
小学生元旦广播稿
2014/02/21 职场文书
手机被没收检讨书
2014/02/22 职场文书
经典广告词大全
2014/03/14 职场文书
打造高效课堂实施方案
2014/03/22 职场文书
拓展策划方案
2014/06/03 职场文书
投标授权委托书范文
2014/08/02 职场文书
物业管理委托协议(2篇)
2014/09/23 职场文书
党员干部作风建设思想汇报范文
2014/10/25 职场文书
python神经网络学习 使用Keras进行简单分类
2022/05/04 Python