function类型

来源:互联网 发布:mac开机一个问号 编辑:程序博客网 时间:2024/06/05 16:33
学习《javascript高级程序设计》中的function类型介绍
(1)函数是对象,函数名是指针,函数的名字仅仅是一个包含指针的变量而已,所以在ECMAScript中没有函数重载,只有函数覆盖
(2)函数声明与函数表达式的区别在于:解析器会先读取函数声明,使之声明提前,可以被执行环境内的任何代码访问;函数表达式必须要等到解析器执行到所在的代码块才会被真正的解析执行
console.log(sum(10,10));
function sum(num1,num2) {
return num1 + num2;
}
//20
console.log(sum(10,10));
var sum = function (num1,num2) {
return num1 + num2;
}
//TypeError: sum is not a function;
(3)在递归调用中,可以使用arguments.callee来消除紧密耦合的现象,使函数的可用性增强
function factorial(num){
if (num <= 1) {
return 1;
} else {
return num * factorial(num - 1)
}
}
可以重写为:
function factorial(num){
if (num <= 1) {
return 1;
} else {
return num * arguments.callee(num - 1)
}
}
0 0