函数的定义方式
1.函数声明
function fn(){
console.log(111)
}
2.函数表达式
var fn = function(){
consloe.log(1111)
}
3.内置构造函数
var fn=new Function("num1","num2","return num1+num2")
censloe.log(fn(2,3))
函数的调用方法
函数名()
(自调用)()
call()调用 fn1.call();
对象中的函数调用 obj1.say();
数组中函数调用
函数作为参数的调用
函数作为返回值的调用
闭包 : 能够读取其他函数内部变量的函数
闭包的用途:
可以在函数外部读取函数内部成员
让函数内成员始终存活在内存中
闭包之访问函数内部
函数递归
案例(思路)
function fn1(){ console.log(11); fn2() console.log("fn1"); }function fn2(){ console.log(22); fn3() console.log("fn2"); }
function fn3(){ console.log(33); fn4() console.log("fn3"); } function fn4(){ console.log(44); console.log("fn4"); } fn1()
斐波那契数列
(案例)function fibonacci(n){ if(n==1){ return 0 } if(n==2){ return 1 }
return fibonacci(n-1) + fibonacci(n-2) }
console.log(fibonacci(4)); console.log(fibonacci(5)); console.log(fibonacci(6)); console.log(fibonacci(50));