闭包与promise

99 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第33天,点击查看活动详情

1. 闭包

  • 产生的条件:

    • 需要不销毁的函数,在函数当中return引用数据类型.
    • 嵌套的函数
    • 内部函数要访问外部函数的变量
  • 产生的优点:

    • 延长变量的声明周期
    • 可以访问函数内部的变量
  • 产生的缺点:

    • 因为闭包里面的变量长期占用我们内容,容易导致低版本 IE 浏览器造成内存泄露

    • 当我们使用完闭包之后,我们手动释放空间

          f=null
      

2.节流

  • 短时间当中,大量的触发,对浏览器的性能造成了较大压力
  • 一段时间当中,我们触发一次,或者少次

3.防抖

  • 一段时间当中,我们只执行最后一次

4.继承

  • 继承就是将父类里面的内容给继承一份给自己

5.重写

  • 当继承父类里面的内容,父类的内容不一定满足子类的所有需要,那么子类需要将父类里面的内容给重新写一份

6.父类

  • 超类,基类

7.子类

  • 派生类

8.constructor与supper

  • constructor => 给属性赋值
  • supper => 当我们的 constructor 没有写的时候,那么可以不需要写 super,如果写了 constructor,那么又有继承,那么一定写 super

9. static

  • static:是类,使用的时候,需要使用类名点出来

10. 继承

  • ES6 的继承关键字 extends

  • ES6 也可以继承 ES5 extends

  • ES6 直接继承

    • 构造函数(call继承)

      • 在资料的构造函数当中写一个 Animal.call(this,name,age,gender)
      • 构造函数只能继承属性
    • 原型继承

      • 继承方法好用,但是属性不好用
      • Dog.prototype = new Animal()
    • 组合继承

      • 构造继承(属性)+原型继承(方法)

11. 回调函数

  • 往函数传参传一个寒湖运行

12. promise

  • 回调地狱:

    • 代码不方便维护,看起来难受
  • 三种状态

    • 成功的 fulfilled / resolve
    • 失败的 reject
    • 等待中 pendding
  • 拓展

    • promise.all => 处理多个Promise返回结果 => 如果多个请求的结果都是成功,那么返回的结果就是成功的,但凡有一个失败,那么结果是一个失败的Promise
    • promise.race => 处理多个promise返回结果 => 返回的是最先返回的那个promise,如果最先跑出来的是成功的,那么返回一个成功的 promise,如果最先返回的是一个失败的promise,那么返回是一个失败的promise
    • Promise.resolve => 直接创建一个成功的promise
    • Promise.reject => 直接创建一个失败的promsie