函数(Function)

首页 > JavaScript基本对象 > 函数(Function)

目录

■ 一览

arguments, function, Function()

■ 函数

function func(arg1, arg2, ...) { ... }

定义一个函数。函数是把经常使用的代码做成的一个可重复使用的代码块。比如把时:分:秒转换为秒数的函数可以像下面这样定义。

function toSeconds(hour, min, sec) {
    var answer = hour * 3600 + min * 60 + sec;
    return(answer);
}

要使用这个函数可以像下面这样写。

sec1 = toSeconds(12, 34, 56);
sec2 = toSeconds(23, 59, 59);

函数一定要先定义才能够使用,不管定义在哪里都可以。一般都定义 <head>~</head> 之间,或者定义在外部JavaScript文件里。

<html>
 <head>
  <title>TEST</title>
  <script type="text/javascript">
  <!--
  function toSeconds(hour, min, sec) {
      var answer = hour * 3600 + min * 60 + sec;
      return(answer);
  }
  // -->
  </script>
 </head>
 <body>
  <script type="text/javascript">
   <!--
   document.write(toSeconds(12, 34, 56));
   // -->
  </script>
 </body>
</html>

function 不仅可以用来定义函数,还可以用来定义类。详细内容请参考《定义类》。

■ 参数和返回值

上面的例子里,hour、min、sec 等叫做参数,用来把值传递给函数使用。而函数执行后得到的结果则叫做返回值

■ 全局变量和局部变量

通常变量都是全局变量(在整个程序里有效),但如果是函数的参数 arg1, arg2, ... 或是在函数内部定义的变量,则被认为是局部变量(只在函数内部有效)。全局变量和局部变量就算名字相同也被当作是不同的变量。

下面的例子里,全局变量 xx 和局部变量 xx 虽然名字相同,但被认为是不同的变量。

function func() {
   var xx = 8;    // 局部变量 xx 赋值为 8
   yy = 8;        // 全局变量 yy 赋值为 8
}

xx = 5;   // 全局变量 xx 赋值为5
yy = 5;   // 全局变量 yy 赋值为5

func();   // 调用函数 func()

alert("xx = " + xx);  // 显示全局变量 xx 的值(5)
alert("yy = " + yy);  // 显示全局变量 yy 的值(8)

■ 函数对象

func = new Function(arg1, arg2, ..., statements)

生成一个函数对象。下面代码的作用等同于上面的函数定义。这种方法一般没人用。

add = new Function("x", "y", "return(x+y)");
func.arguments

用来表示参数的数组。参数的数量不定的时候用它比较方便。

function heji() {
    var ans = 0;
    for (i = 0; i < heji.arguments.length; i++) {
        ans += heji.arguments[i];
    }
    return(ans);
}
sum = heji(1, 2, 3, 4, 5);
func.prototype.newName

请参考 → prototype