2020828日志邹瑞

学习总结

重载(overload)

  1. 什么是重载?(相同函数名,不同参数列表的多个函数,在调用时,根据传入参数的不同,自动选择匹配的函数执行)

  2. 为什么使用重载?(减少API的数量,减轻调用者的负担)

  3. 什么时候使用重载?(只要一项任务,需要根据不同的参数,执行不同的操作时,就需要使用重载)

  4. 重载问题(JS语法不支持重载,JS中不允许多个同名函数同时存在)

  5. 解决重载问题(每一个函数内,都有一个arguments对象接住所有传入函数的参数值,根据arguments的元素内容或元素个数,判断执行不同的操作)
    arguments(函数调用时,自动创建的,自动接收所有传入函数的参数值。arguments其实是一个类数组对象)

    ​ function fn(girlFriends){
    ​ if(arguments.length0){
    ​ console.log("我没有女朋友")
    ​ }else if(arguments.length
    1){
    ​ console.log("我有一个女朋友")
    ​ }else if(arguments.length==2){
    ​ console.log("我有两个女朋友")
    ​ }else{
    ​ console.log("我有三个女朋友")
    ​ }
    }
    fn("丽丽","明明") // 我有两个女朋友
    fn("丽丽") // 我有一个女朋友

    参数按值传递

    1. 原始类型按值传递(原始类型的按值传递,在两变量之间赋值时,或将变量作为参数传入函数时,仅将原变量的值复制一个副本给对方,若修改新变量的值,不会影响原变量的值)
      var a=1;
      var b=a;
      b=2;
      console.log(a,b) //1 2
    2. 引用类型的传递(引用类型的传递,在两变量之间赋值时,或将变量作为参数传入函数时,将原对象的引用地址复制一份新变量,两个变量的引用地址是一样的,若使用新变量修改对象,等效于直接修改原对象)(数组对象函数)
      var obj1={
      name:'liming',
      sex:'man'
      }
      var obj2=obj1;
      obj2.name='lidaming';
      console.log(obj1.name) //lidaming

    闭包

    闭包(closure)

    1. 什么是闭包?

    2. 为什么使用闭包?
      全局变量
      优点:可重用
      缺点:易被污染
      局部变量
      缺点:不可重用
      优点:不会被污染

    3. 使用闭包
      var add = (function () {
      var counter = 0;

      return function () {return counter += 1;}

      })();
      add(); // counter=1;
      add(); // counter=2;
      add(); // counter=3;

    4. 三特点(3步)
      外层函数
      外层函数要返回内层函数的对象

      调用外层函数,用外部变量接住返回的内层函数对象,形成闭包
      function fn(){
      return [

      function fn1(){

      console.log(1)
      },
      function fn2(){

      console.log(2)
      },
      function fn3(){

      console.log(3)
      }
      ]
      }
      var show=fn()
      show

      心得

      感觉有点小快,有些概念性的东西有点不太清楚,但能看得懂代码,不太清楚什么时候用

标签

评论

this is is footer