zoukankan      html  css  js  c++  java
  • JavaScript中的函数(一)

      javaScript中的函数实际上是对象,每一个函数都是Function类型的实例,和其他引用类型一样具有属性和方法。由于函数是对象,因此函数名实际上也就是一个指向函数对象的指针,也就是函数对象的一个引用,因此一个函数可以有多个名字。

     1.函数定义的方式:

      1)使用函数声明定义函数:

         function sum(num1,num2){

        return num1+num2;

      }

      2)使用函数表达式定义函数:定义变量sum并将其初始化为一个函数,变量sum可以引用函数。要注意函数末尾有一个分号,和声明变量一样。

        var sum = function(num1,num2){

        return num1+num2;

      };

     3)使用Function构造函数定义函数(一般不推荐,虽然很好理解Function对象类型)

         Function构造函数可以接收任意数量的参数,但是最后一个参数被视为函数体,其前面的参数视为新函数的参数。

         var sum = new Function("num1","num2","return num1+num2");

         因为这种方法定义函数时会导致解析两次代码(第一次解析是script代码,第二次是解析传入构造函数中的字符串)从而影响性能。

    2.script中不存在函数重载

     若存在多个函数的名称相同,则后面的函数会覆盖前面定义的函数。

     例如:

        function increNum(num){

         return num+10;

        }

        function increNum(num){

        return num+20;
        }

        var result = increNum(10);

        alert(result);//30

        以上代码与下面代码一样:

       var increNum = function(num){return num+10};

       increNum = function(num){return num+20};

       alert(increNum(10));//30

     3.函数声明和函数表达式的区别:

      解析器在向执行环境中加载数据时,对函数声明和函数表达式解析顺序和时机不同。解析器会先读取函数声明,使其在执行任何代码之前可以访问,而表达式必须等到解析器执行到它所在的代码行,才能真正的被执行。

       alert(sum(10,20));

       function sum(num1,num2){

        return num1+num2;

      }

      上面代码可以正常运行,因为在执行代码之前,解析器就先读取到了函数声明,将其添加到执行环境中,使得函数可以被访问。如果把函数声明改成函数表达式,就会出错。

      alert(sum(10,20));

      var sum = function(num1,num2){return num1+num2};

      除了这一点区别外,一般函数声明和函数表达式还是等价的。

  • 相关阅读:
    二叉树非递归遍历
    二叉树之统计二叉树的节点个数
    C语言32个关键字(2)
    C语言32个关键字(1)
    C语言常用字符串操作函数总结
    面向对象的四大特征
    C语言之生产者与消费者模型
    菜鸟随笔(4)---read函数与fread函数的区别
    菜鸟随笔(3)---三种进程学习.孤儿进程.僵尸进程.守护进程
    进程通信——管道、消息队列、共享内存、信号量
  • 原文地址:https://www.cnblogs.com/zwbg/p/5762688.html
Copyright © 2011-2022 走看看