码迷,mamicode.com
首页 > 编程语言 > 详细

【JavaScript】Function类型

时间:2015-12-05 17:23:39      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:

  JavaScript中,每个函数都是Function类的一个实例。

  也就是说每一个定义的函数名都是指向Function类型的一个实例。

  函数名中存放的是函数的指针(Function类型实例指针)。

  可以使用Function的构造函数实现,最后一个参数被视为函数体,如:

  var sum = new Function("num1","num2","return num1+num2");   //不推荐

  

1.没有重载

  因为函数名中存放的是指针,重新定义相同的函数名时,不管参数签名是否一致,都会覆盖掉之前所存的函数。

  不存在重载。

  但是函数的重载还是可以实现,JavaScript中,当函数传入的参数与函数签名数量不相同时,仍可以运行(在函数体中加入判断参数是否存在的语句,避免出错)。

  这样也可以实现函数的重载。

 

2.函数声明与函数表达式区别

  JavaScript在编译时会将函数的定义提前,即在调用之后才定义,也可以实现函数体的内容,如:

    alert(sum(10,10);        //输出20

    function sum(num1, num2){
      return num1 + num2;

    }

  

  而当使用函数的表达式时,编译到表达式时才会定义函数,因此如果像上例输出,会报错,如:

    alert(sum(10,10);        //unexpected identifier

    var sum = function(num1, num2){

      return num1 + num2;

    }

 

3.作为值的函数

  因为函数名中存放的是指针,因此函数可以作为一个参数传入另外一个函数内部,如:

    function callSomeFunction(someFunction, someArgument){

      return someFunction(someArgument);

    }

 

    function add10(num){

      return num + 10;

    }

 

    var result1 = callSomeFunction(add10, 10);

    alert(result1);        //20

 

    function getGreeting(name){
      return "Hello, " + name;

    }

 

    var result2 = callSomeFunction(getGreet, "Nicholas");

    alert(result2);

4.函数内部属性

  

【JavaScript】Function类型

标签:

原文地址:http://www.cnblogs.com/junxcode/p/5021718.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!