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>