js 重载i

 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="en">
 4     <meta charset="UTF-8">
 5     <title></title>
 6     <script type="text/javascript">
 7        /* function sum(num1 , num2){
 8             return num1 + num2 ;
 9         }
10 
11         function sum(num1){
12             return num1 + 100;
13         }
14         alert(sum(19));   //119
15         alert(sum(19,10));   //119
16         */
17         /**
* 以下两个sum的写法与上面的两个function是一样的,只是写法不同而已
*/
18 var sum = function(num1 , num2){ 19 return num1 + num2 ;//29 20 } 21 22 var sum = function(num1){ 23 return num1 + 10; //29 24 } 25 26 /** 27 * 此时sum所指向的控件已经从有两个参数的函数变化到只有sum1的函数中 28 * 在调用的时候就只会调用自由sum1 的函数 29 * 特别指出:函数的参数和调用没有关系,如果函数只有一个参数,但是却传入了两个参数。仅仅只会匹配一个 30 * 所以在js中函数是不存在重载 31 */ 32 alert(sum(19)); 33 alert(sum(19,10)); 34 35 //函数有如下一种定义方式 36 /** 37 * js中 函数就是对象,不存在重载,只是存在覆盖,后面定义的会覆盖前面定义的。 38 * 39 * 如下定义方式等于定义了一个 40 * function fn(num1,num2){ 41 * alert(num1+num2); 42 * } 43 * 所有通过以下的例子,充分的说明函数就是一个对象 44 * 在js中,函数就是一个对象,函数的名称可以变,他是一个对象,当函数是一个对象给我们带来了革命性的变化就是, 45 * 我们可以返回一个函数,我们可以把函数当作参数传进去,就带来了很多灵活性 46 */ 47 var fn = new Function("num1" , "num2" , "alert(num1 + num2);"); 48 fn(12,22); //34 49 50 </script> 51 52 </head> 53 <body> 54 55 </body> 56 </html>
 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="en">
 4     <meta charset="UTF-8">
 5     <title></title>
 6     <script type="text/javascript">
 7         function fun1(arm1) {
 8             alert(arm1);
 9         }
10         function fun2(arm1, arm2) {
11             alert(arm1 + "_" + arm2);
12         }
13         function fun(arm1, arm2) {
14             if (arguments.length == 1) {
15                 fun1("我一个人啦");
16             } else {
17                 fun2("我一个人啦",",终于来个伴了");
18             }
19         }
20 
21             fun(1);  //我一个人啦
22             fun(1,2);  //我一个人啦_,终于来个伴了
23 
24 
25     </script>
26 
27 </head>
28 <body>
29 
30 </body>
31 </html>
原文地址:https://www.cnblogs.com/a757956132/p/5249773.html