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操作select控件的几种方法
Jun 02 Javascript
文字溢出实现溢出的部分再放入一个新生成的div中具体代码
May 17 Javascript
JavaScript使用push方法添加一个元素到数组末尾用法实例
Apr 06 Javascript
javascript实现根据时间段显示问候语的方法
Jun 18 Javascript
jQuery菜单插件用法实例
Jul 25 Javascript
使用Sticky组件实现带sticky效果的tab导航和滚动导航的方法
Mar 22 Javascript
全面解析bootstrap格子布局
May 22 Javascript
深入理解js数组的sort排序
May 28 Javascript
自学实现angularjs依赖注入
Dec 20 Javascript
基于jPlayer三分屏的制作方法
Dec 21 Javascript
使用Vue制作图片轮播组件思路详解
Mar 21 Javascript
Vue2.x通用编辑组件的封装及应用详解
May 28 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
真正的ZIP文件操作类(php)
2007/07/21 PHP
网页游戏开发入门教程三(简单程序应用)
2009/11/02 PHP
php检测useragent版本示例
2014/03/24 PHP
php动态生成缩略图并输出显示的方法
2015/04/20 PHP
PHP模糊查询的实现方法(推荐)
2016/09/06 PHP
PHP结合Redis+MySQL实现冷热数据交换应用案例详解
2019/07/09 PHP
php设计模式之建造器模式分析【星际争霸游戏案例】
2020/01/23 PHP
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.3
2008/03/22 Javascript
浏览器解析js生成的html出现样式问题的解决方法
2012/04/16 Javascript
jquery实现一个简单的表单验证实例
2016/03/30 Javascript
nodejs 的 session 简单使用
2016/06/06 NodeJs
对js eval()函数的一些见解
2016/08/15 Javascript
JavaScript实现移动端轮播效果
2017/06/06 Javascript
收藏AngularJS中最重要的核心功能
2017/07/09 Javascript
在vue项目中使用element-ui的Upload上传组件的示例
2018/02/08 Javascript
vue input 输入校验字母数字组合且长度小于30的实现代码
2018/05/16 Javascript
vue里如何主动销毁keep-alive缓存的组件
2019/03/21 Javascript
vue和better-scroll实现列表左右联动效果详解
2019/04/29 Javascript
微信小程序 搜索框组件代码实例
2019/09/06 Javascript
JS实现随机抽取三人
2019/11/06 Javascript
python实现同时给多个变量赋值的方法
2015/04/30 Python
使用Django连接Mysql数据库步骤
2019/01/15 Python
使用Python来做一个屏幕录制工具的操作代码
2020/01/18 Python
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
2020/02/26 Python
python 瀑布线指标编写实例
2020/06/03 Python
Python如何合并多个字典或映射
2020/07/24 Python
CSS3教程(4):网页边框和网页文字阴影
2009/04/02 HTML / CSS
前端水印的简单实现代码示例
2020/12/02 HTML / CSS
澳大利亚宠物食品和药物在线:Jumbo Pets
2018/03/24 全球购物
官方授权图形T恤和服装:Fifth Sun
2019/06/12 全球购物
九九重阳节标语
2014/10/07 职场文书
人事局接收函
2015/01/30 职场文书
督导岗位职责
2015/02/04 职场文书
考研英语辞职信
2015/05/13 职场文书
文艺委员竞选稿
2015/11/19 职场文书
mysql 索引合并的使用
2021/08/30 MySQL