函数高级应用

函数的定义方式

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));
posted @ 2021-12-12 17:24  岑先森  阅读(41)  评论(0)    收藏  举报