面向对象
ES6面向对象
ES5面向对象
闭包
- 内部函数可以访问外部函数的值,该值会长期存储在内存中,因此产生了闭包
- 闭包是一种保护私有变量的机制,在函数执行时形成私有的作用域,保护里面的私有变量不受外界干扰。 直观的说就是形成一个不销毁的栈环境, 闭包实现了传递值和功能的调用。
- 优点:避免变量污染全局,变量的叠加使用
- 缺点:因为常驻内存,如果有大量闭包不被释放,容易造成内存溢出
递归
- 程序自我调用,简单理解就是函数自己调用自己。目的是为了处理不确定层级的相同数据结构的数据处理。
- 优点:代码更简洁清晰,可读性更好;
- 缺点:时间和空间消耗比较大、很多计算都是重复的、调用栈可能会溢出。