现在的位置: 首页 > 综合 > 正文

javascript 重载函数

2016年05月10日 ⁄ 综合 ⁄ 共 1018字 ⁄ 字号 评论关闭

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
   }
}

http://www.waitingfy.com/archives/1083

抱歉!评论已关闭.