<!DOCTYPE html>
<html>
<head>
<title>javascript函数的重载</title>
<meta charset="UTF-8">
<script type="text/javascript">
/**
* 此时sum所指向的空间已经从有两个参数的函数变化到只有num1的函数中
* 在调用的时候就只会调用只有num1的函数,特别指出:函数的参数和调用没有关系,如果函数只有一个参数,但是却传入了两个
* 参数,仅仅只会匹配一个,所以在js中不存在函数的重载。
* @param num1
* @param num2
* @returns {*}
*/
function sum(num1,num2){
return (num1+num2);
}
function sum(num1){
alert(num1+100);
}
sum(19);
sum(19,29);
//======================================================
//所以函数有了如下的定义方式
/**
* 如下的方式定义等于定义一个
* function fn(num1,num2){
* alert(num1+num2);
*
* }
* @type {Function}
*/
var fn = new Function("num1","num2","alert((num1+num2))");
fn(1,2);
</script>
</head>
<body>
</body>
</html>
原文:http://www.cnblogs.com/aicpcode/p/4278674.html