Function类型

Posted lxg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Function类型相关的知识,希望对你有一定的参考价值。

1.每个函数都是Function类型的,和其他引用类型一样都具有属性和方法。函数也是对象,因此函数实际上是一个指向函数对象的指针。

函数声明语法定义:

  方法1:

  function sum(num1,num2){

    return num1+num2;

}

  方法2:

和下面使用函数表达式定义函数的方式几乎一样(匿名函数)

  var sum=function(num1,num2){

    return num1+num2;

};

匿名函数,通过一个变量sum就可以引用函数。另外函数末尾有个分号,和声明一个变量一样 如var a;结尾有个分号结束。

  方法3:(不推荐使用)

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

1.1没有重载

<script>

    function calc(num1,num2){

      return num1+num2;

    }

    function calc(num1,num2){

      return num1+num2;

    }

    var sum=calc(3,5);

</script>
上面例子声明了两个同名函数,结果是后面的函数覆盖了前面的函数。

1.2函数声明和函数表达式的区别

javascript语言是弱类型语言,解释执行。解析器会率先加载函数声明,使其在执行任何代码之前可用;而函数表达式,必须

等到解析器执行到所在的代码时才会被解释执行。

  alert(sum(3,5));

  function sum(num1,num2){

  return num1+num2;

}

以上代码运行是没有问题的,因为在代码开始执行之前,解析器已经通过一个名为函数声明提升的过程,读取并将函数声明添加到执行环境中。

  alert(sum(3,5));

  var sum=function(num1,num2){

  return num1+num2;

}

以上代码在运行期间会出错的,原因在于函数位于一个初始化语句中,而不是函数声明。也就是说在执行到函数所在的语句时,变量sum中不会保存有对函数的引用。

注意:处理什么时候通过变量访问函数这一点外,函数声明和函数表达式的语法是完全等价的。

1.3作为值的函数

1.4函数内部属性

1.5数属性和方法

 

以上是关于Function类型的主要内容,如果未能解决你的问题,请参考以下文章

9.Function类型

如何将“Function”类型的参数分配给“void Function()”类型的参数?

参数类型“Function”不能分配给参数类型“void Function()?”在零安全之后

JavaScript的Function 类型

错误:参数类型 'void Function()?'不能分配给参数类型 'void Function(String?)?'

引用类型:Function类型