- 函数实际上是对象,函数名实际上也是一个指向函数对象的指针。
- 使用不带圆括号的函数名是访问函数指针,而非调用函数。
- 函数声明和函数表达式:
alert(test(2,3));
function test(num1,num2){ //函数声明方式
return rum1+rum2;
}
以上代码不会出错,以为在代码执行之前,解析器就已经通过一个名为函数声明提升的过程,读取并将函数声明添加到执行环境中。对代码求值时,JavaScript引擎在第一遍会声明函数并将它们放到源代码树的顶部,所以,即使声明函数的代码在调用它的代码后面,JavaScript引擎也能把函数声明提升到顶部。
但是,把上面的函数声明改为等价的函数表达式,就会在执行起价导致错误。
alert(test(2,3));
var test=function(num1,num2){ //函数表达式方式
return rum1+rum2;
}
产生错误是因为函数位于一个初始化语句中,而不是函数声明中。也就是执行到函数所在的语句之前,变量test中不会保存有对函数的引用。
4.因为函数本身就是变量,所以函数也可以当做值来使用。可以把函数当做参数传递给另一个函数。