六十八、 描述下你对js闭包。面向对象、继承的理解
-
1)闭包理解: 个人理解:闭包就是能够读取其他函数内部变量的函数; 使用闭包主要是为了设计私有的方法和变量。闭包的优点是可以避免全局变量的污染,缺点是闭包会常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。在js中,函数即闭包,只有函数才会产生作用域的 概念
闭包有三个特性: 1.函数嵌套函数 2.函数内部可以引用外部的参数和变量 3.参数和变量不会被垃圾回收机制回收 闭包常见用途: 创建特权方法用于访问控制 事件处理程序及回调
面向对象: 面向对象编程,即OOP,是一种编程范式,满足面向对象编程的语言,一般会提供类、封装、继承等语法和概念来辅助我们进行面向对象编程。
继承: 对象继承分两种情况,一种是构造函数的继承,一种是原型(prototype)的继承: 1. 构造函数的继承,比较简单,只需要在子对象中添加代码:parent.apply(this, arguments); 关于原型的继承最优化的方法,利用空对象作为中介 2. 拷贝继承