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 DOM 操作实现代码
Aug 01 Javascript
js中回调函数的学习笔记
Jul 31 Javascript
JavaScript设计模式之策略模式实例
Oct 10 Javascript
BOOTSTRAP时间控件显示在模态框下面的bug修复
Feb 05 Javascript
jQuery插件实现适用于移动端的地址选择器
Feb 18 Javascript
JS解决iframe之间通信和自适应高度的问题
Aug 24 Javascript
解析Vue2.0双向绑定实现原理
Feb 23 Javascript
Angular 4.x 动态创建表单实例
Apr 25 Javascript
Angular.Js中ng-include指令的使用与实现
May 07 Javascript
vue2.0 子组件改变props值,并向父组件传值的方法
Mar 01 Javascript
vue中typescript装饰器的使用方法超实用教程
Jun 17 Javascript
axios实现文件上传并获取进度
Mar 25 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
长波知识介绍
2021/03/01 无线电
深入eAccelerator与memcached的区别详解
2013/06/06 PHP
PHP 如何利用phpexcel导入数据库
2013/08/24 PHP
php获取网页里所有图片并存入数组的方法
2015/04/06 PHP
详解如何在云服务器上部署Laravel
2017/06/30 PHP
YII2框架中日志的配置与使用方法实例分析
2020/03/18 PHP
基于json的jquery地区联动效果代码
2011/07/06 Javascript
js调用activeX获取u盘序列号的代码
2011/11/21 Javascript
JqueryMobile动态生成listView并实现刷新的两种方法
2014/03/05 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
ExtJS4 动态生成的grid导出为excel示例
2014/05/02 Javascript
Javascript实现获取窗口的大小和位置代码分享
2014/12/04 Javascript
JavaScript对Json的增删改属性详解
2016/06/02 Javascript
大型JavaScript应用程序架构设计模式
2016/06/29 Javascript
Node.js连接postgreSQL并进行数据操作
2016/12/18 Javascript
Angularjs使用指令做表单校验的方法
2017/03/31 Javascript
JS组件系列之JS组件封装过程详解
2017/04/28 Javascript
微信小程序图片横向左右滑动案例
2017/05/19 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
Node.js使用supervisor进行开发中调试的方法
2019/03/26 Javascript
vue 解决遍历对象显示的顺序不对问题
2019/11/07 Javascript
简单了解JavaScript sort方法
2019/11/25 Javascript
Angular5整合富文本编辑器TinyMCE的方法(汉化+上传)
2020/05/26 Javascript
python实现定制交互式命令行的方法
2014/07/03 Python
Python面向对象编程基础解析(二)
2017/10/26 Python
python利用插值法对折线进行平滑曲线处理
2018/12/25 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
2019/06/18 Python
python和c语言的主要区别总结
2019/07/07 Python
python定位xpath 节点位置的方法
2019/08/27 Python
python如何建立全零数组
2020/07/19 Python
瑜伽服装品牌:露露柠檬(lululemon athletica)
2017/06/04 全球购物
求职意向书
2014/07/29 职场文书
教师工作总结范文2014
2014/11/10 职场文书
红领巾广播站广播稿
2015/08/19 职场文书
【DOTA2】高能暴走TK秀!PSG LGD vs ASTER - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA
Go语言入门exec的基本使用
2022/05/20 Golang