函数实际上是对象,每个函数都是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)函数内部有两个特殊对象:arguments和this,arguments有个名叫callee的属性,该属性是一个指针,指向拥有这个arguments对象的函数;this应用的是函数据以执行的环境对象;另外,caller属性中保存着调用当前函数的函数的应用。
函数的属性:
- length:表示函数希望接收的命名参数的个数;
- prototype:原型属性
函数的方法:
- apply()和call(),这两个方法的用途都是在特定的作用域中调用函数,实际上等于设置函数体内this对象的值。用途:传递参数,扩充函数运行的作用域。
时间: 2024-08-05 10:09:14