JavaScript中的Function类型

函数实际上是对象,每个函数都是Function类型的实例,定义Function函数的方式如下:

 

 1      //第一种:函数声明
 2       function sum(num1,num2){
 3           return num1 + num2; 
 4       }
 5       
 6       //第二种:函数表达式
 7       var sum = function(num1,num2){
 8           return num1 + num2; 
 9       }
10       
11       //第三种:Function构造函数
12       var sum = new Function("num1","num2","return num1+num2"); //不推荐 

 

*注意点:

(1)函数是对象,函数名是访问函数指针,而非调用。

(2)函数没有重载,因为函数名为指针。

(3)函数声明与函数表达式区别:解析器会率先读取函数声明,并使其在执行任何代码之前可用(可以访问),而对于函数表达式,则必须等到解析器执行到它所在的代码行,才会真正解释执行。

(4)函数名本身就是变量,所以函数也可以作为值来使用,不仅可以像传递参数一样把一个函数传递给另一个函数,而且可以将一个函数作为另一个函数的结果返回。

(5)函数内部有两个特殊对象:argumentsthisarguments有个名叫callee的属性,该属性是一个指针,指向拥有这个arguments对象的函数;this应用的是函数据以执行的环境对象;另外,caller属性中保存着调用当前函数的函数的应用。

 

函数的属性:

  • length:表示函数希望接收的命名参数的个数;
  • prototype:原型属性

函数的方法:

  • apply()和call(),这两个方法的用途都是在特定的作用域中调用函数,实际上等于设置函数体内this对象的值。用途:传递参数,扩充函数运行的作用域。
posted @ 2015-09-11 13:48  奈河桥  阅读(301)  评论(0编辑  收藏  举报