知识点:递归调用"匿名函数"
算法:计算 Fibonacci 值
代码:5.3.js
/**
* Created by jaloli on 2016/6/6.
*/
//(1)匿名函数递归调用
var result = function (num) { //这种定义和下面的定义等价,这种,调用result(5)
//function fibonacci(num){ //这种定义调用fibonacci(5)
return (function(num){ //这个是匿名函数,下面要递归调用这个匿名函数,用到arguments.callee(num-1) 这种方式
if(typeof num !== "number") return -1
num = parseInt(num)
if(num<1) return -1
if(num == 1 || num == 2) return 1
var x = arguments.callee(num-1)
var y = arguments.callee(num-2)
return x+y
})(num) //这里加个(num),是直接运行匿名函数的方式
}
document.writeln("fibonacci result: " + result(6) + "<br>")
//(2)立即执行匿名函数
var param = 0;
(function(i){
alert("我是立即执行的函数" + param)
})(param) //这种立即执行的匿名函数,这个位置需要写上(param),才能传参,否则上行的param 变量显示undefined
//(3)js 中函数也是对象,下面这种就是声明函数赋值给变量,通过变量对象调用函数
var f2 = function() {
document.write("函数也是对象,我是对象调用的结果" + "<br>")
}
f2();//
//(4) 使用缓存,暂未运行
var num = 0