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

Posted dreamlifeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了描述下你对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

以上是关于描述下你对js闭包。面向对象继承的理解的主要内容,如果未能解决你的问题,请参考以下文章

JS面向对象三大特征:封装、继承、多态

JavaScript对象原型链继承闭包

JavaScript对象原型链继承和闭包

46谈谈你对面向对象的理解?

JS面向对象 -- Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法

面试总结之谈谈你对面向对象的理解