JavaScript学习笔记(四)—闭包、递归、柯里化函数、继承、深浅拷贝、设计模式

JavaScript学习笔记(四)—闭包、递归、柯里化函数、继承、深浅拷贝、设计模式

      • 1. 匿名函数的使用场景
      • 2.自运行
      • 3.闭包
        • 3.1前提:
        • 3.2闭包
      • 4.函数对象的三种定义方式
      • 5.this
      • 6.arguments
      • 7.arguments.callee
      • 8.递归
      • 9.prototype
      • 10.apply和call区别
      • 11.柯里化函数
      • 12.继承
        • 12.1原型继承
        • 12.2借用构造方法继承
        • 12.3混合继承
        • 12.4ES6继承
      • 13.引用类型的判断
      • 14.深浅拷贝
      • 15.设计模式
        • 15.1单例模式(必须掌握)
        • 15.2代理模式
        • 15.3工厂模式
        • 15.4组合模式
        • 15.5观察者模式(掌握)

1. 匿名函数的使用场景

匿名函数: function关键字后面没有标识符的时候,它就是一个匿名函数。

  1. 绑定事件

  2. 作为等 的右值

  3. 可以作为函数的参数,回调函数

    匿名函数的本质就是一个对象—–>对象如何使用,匿名函数就可以如何使用

  4. 函数也可以作为函数的返回值,学习闭包的前置条件

2.自运行

自运行:一个匿名函数在定义完自动运行,学习闭包的前置条件

匿名函数自运行的写法:

  1. 第一种

  2. 第二种

  3. 第三种:通过运算符实现

  4. 第四种:通过关键字实现

3.闭包

3.1前提:

全局变量:全局变量会降低函数的独立性

局部变量:函数执行外,局部变量被销毁

3.2闭包

闭包的概念:函数嵌套函数,被嵌套的函数称为闭包函数

闭包的作用:在一个函数体外,使用了函数的局部变量(会保证私有属性的安全性)

为什么可以在f1体外使用count/p>

闭包的实现:在主函数(f1)中定义内部变量(count),及子函数(f2),在子函数(f2)中使用主函数(f1)中定义内部变量(count),将子函数(f2)作为主函数(f1)的返回值,在外界通过全局变量f绑定了f1的返回值f2,从而延长了f2的生命周期,使得count可以在f1外界使用。

特点:1.函数嵌套函数,2.函数内部可以引用外部的参数和变量,3.参数和变量不会被垃圾回收机制回收

用处:1.常驻内存会增大内存的使用量,2.读取函内部的变量,3.这些变量的值始终保持在内存中,不会在外层函数调用后被自动清除

优点:1.变量长期驻扎在内存中,2.避免全局变量的污染,3.私有成员的存在

缺陷:打破了垃圾回收机制,延长局部变量的生命周期,使用闭包可能会造成内存泄漏

闭包的案例:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年9月26日
下一篇 2022年9月26日

相关推荐