Javsscript函数的定义方法

 函数是Javascript的最重用的内容,首先,要知道函数也是一个对象,要使用函数,一般要先定义,那么定义的方法有几种呢?可以分为两种:语句定义和表达式定义。使用最普遍的使用function语句。
例如1.1:
    function sayHello(){
      document.write("say,Hello!");
    }
函数的三要素:函数名,函数体,函数值。
由于1.1没有return语句,它的返回值即函数值是undefined。
例如1.2:
    function add(x,y){
      return x+y;
    }
此函数的功能是求两个数之和,函数值是返回两个数之和,函数值类型是number。
第二中函数定义方式有两种方法:
1:)使用Function构造函数定义
     var distance=new Function("x1","y1","x2","y2","var dx=x2-x1;var dy=y2-y1;return Math.sqrt(dx*dx,dy*dy)");
    从此形式上,可知道这是一个表达式。
    使用Function构造函数要注意:该函数可接任意个字符串参数,其最后一个参数是函数的主体,其余的都是参数。
在此处,使用了new,该保留字是用来新建一个对象的。由此可验证前面说到的函数是一个对象。该函数没有名字,古它是个匿名函数,变量distance只是对此函数的引用,即distance是引用变量。
   使用此方法的好处是:可以动态的建立函数和编译函数,不需预编译。缺点是:每次使用都需要编译它。所有建议频繁使用的函数不要使用此方法,效率低。
2:)函数直接量
    函数直接量与function语句相似。它创建一个匿名函数,然后,使用一个引用变量指向它。函数直接量只被解析和编译一次。
    var f2=function(x,y){return x*x+y*y;}
    注意也可指定函数名如
    var f3=function fact(n){if(x<=1) return 1;else return n*fact(n-1);}//定义一个函数并保存它
    指定函数名方便递归调用。
    合适情景:使用一次的函数,而且,无需命名的函数,可用此定义方法。
    匿名函数:
    var sum=(function(x,y,z) {return x+y+z;})(12,23,34);//定义并调用一个函数
    a.sort(function(a,b){return a-b;});//定义一个函数并传递给另一个函数

posted @ 2012-06-28 18:07  猫200  阅读(368)  评论(0编辑  收藏  举报