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关键字后面没有标识符的时候,它就是一个匿名函数。
-
绑定事件
-
作为等 的右值
-
可以作为函数的参数,回调函数
匿名函数的本质就是一个对象—–>对象如何使用,匿名函数就可以如何使用
-
函数也可以作为函数的返回值,学习闭包的前置条件
2.自运行
自运行:一个匿名函数在定义完自动运行,学习闭包的前置条件
匿名函数自运行的写法:
-
第一种
-
第二种
-
第三种:通过运算符实现
-
第四种:通过关键字实现
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进行处理,非常感谢!