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 相关文章推荐
用JQuery 实现的自定义对话框
Mar 24 Javascript
javascript对象的property和prototype是这样一种关系
Mar 24 Javascript
js href的用法
May 13 Javascript
Javascript 页面模板化很多人没有使用过的方法
Jun 05 Javascript
解决JQeury显示内容没有边距内容紧挨着浏览器边线
Dec 20 Javascript
jQuery+css实现的切换图片功能代码
Jan 27 Javascript
微信小程序 倒计时组件实现代码
Oct 24 Javascript
JavaScript易错知识点整理
Dec 05 Javascript
微信小程序 利用css实现遮罩效果实例详解
Jan 21 Javascript
JS仿JQuery选择器功能
Mar 08 Javascript
vue首次赋值不触发watch的解决方法
Sep 11 Javascript
vue路由传参页面刷新参数丢失问题解决方案
Oct 08 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代码
2013/03/24 PHP
PHP数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)
2014/07/05 PHP
php实现两个数组相加的方法
2015/02/17 PHP
php中Snoopy类用法实例
2015/06/19 PHP
PHP将页面中点击数量高的链接进行高亮显示的方法
2016/05/30 PHP
php使用curl伪造浏览器访问操作示例
2019/09/30 PHP
javascript 面向对象编程 万物皆对象
2009/09/17 Javascript
jQuery实现鼠标经过图片预览大图效果
2014/04/10 Javascript
jQuery中is()方法用法实例
2015/01/06 Javascript
TypeError document.getElementById(...) is null错误原因
2015/05/18 Javascript
jquery实现适用于门户站的导航下拉菜单效果代码
2015/08/24 Javascript
javascript中apply、call和bind的使用区别
2016/04/05 Javascript
Bootstrap轮播图学习使用
2017/02/10 Javascript
利用NPM淘宝的node.js镜像加速nvm
2017/03/27 Javascript
Vue原理剖析 实现双向绑定MVVM
2017/05/03 Javascript
webpack 样式加载的实现原理
2018/06/12 Javascript
详解React native fetch遇到的坑
2018/08/30 Javascript
浅析Vue 防抖与节流的使用
2019/11/14 Javascript
AutoJs实现刷宝短视频的思路详解
2020/05/22 Javascript
python让图片按照exif信息里的创建时间进行排序的方法
2015/03/16 Python
Django中实现点击图片链接强制直接下载的方法
2015/05/14 Python
[原创]使用豆瓣提供的国内pypi源
2017/07/02 Python
python opencv之分水岭算法示例
2018/02/24 Python
pytorch 彩色图像转灰度图像实例
2020/01/13 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
2020/04/27 Python
如何把外网python虚拟环境迁移到内网
2020/05/18 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
2020/05/26 Python
Schutz鞋官方网站:Schutz Shoes
2017/12/13 全球购物
澳大利亚在线生活方式商店:Mytopia
2018/07/08 全球购物
如何使用PHP session
2015/04/21 面试题
小班开学寄语
2014/04/04 职场文书
2015年电厂工作总结范文
2015/05/13 职场文书
个人收入证明范本
2015/06/12 职场文书
2019通用版导游词范本!
2019/08/07 职场文书
MySQL中distinct和count(*)的使用方法比较
2021/05/26 MySQL
css中:last-child不生效的解决方法
2022/08/05 HTML / CSS