描述下你对js闭包。面向对象、继承的理解

1)闭包理解:

  个人理解:闭包就是能够读取其他函数内部变量的函数;

使用闭包主要是为了设计私有的方法和变量。闭包的优点是可以避免全局变量的污染,缺点是闭包会常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。在js中,函数即闭包,只有函数才会产生作用域的概念

闭包有三个特性:

1.函数嵌套函数

2.函数内部可以引用外部的参数和变量

3.参数和变量不会被垃圾回收机制回收

闭包常见用途:

创建特权方法用于访问控制

事件处理程序及回调

2) 面向对象:

面向对象编程,即OOP,是一种编程范式,满足面向对象编程的语言,一般会提供类、封装、继承等语法和概念来辅助我们进行面向对象编程。

 参考:

http://www.ruanyifeng.com/blog/2010/05/object一oriented_javascript_encapsulation.html

3)继承:

对象继承分两种情况,一种是构造函数的继承,一种是原型(prototype)的继承:

1. 构造函数的继承,比较简单,只需要在子对象中添加代码:parent.apply(this, arguments);

关于原型的继承最优化的方法,利用空对象作为中介

2. 拷贝继承

可参考:

https://segmentfault.com/a/1190000002440502

http://blog.csdn.net/james521314/article/details/8645815

猜你喜欢

转载自www.cnblogs.com/DreamLiFeng/p/9959252.html