闭包和继承
继承
父类拥有属性及相关方法,通过继承、子类也可以拥有(私有的不能获取)
继承的实现方式
1 es6的extends关键词来实现继承(class)
2 原型继承(将对应的需要继承的对象加在原型上 )
3 通过this指向来继承
function Person(){
this.name = "哈哈"
} function Son(){
//this指向Son的实例对象
Person.call(this) //将Person的this指向改为对的son的实例对象
闭包执行过程
1.预编译 先开辟一个内存空间装函数对象 在对应的内存空间上再开辟一个空间 代码块空间(来装代码)
2.执行 找到函数的对象空间 在这个对象空间上开辟一个执行空间
再将对应的代码块空间合并到执行空间里面去 进行代码的执行 执行完毕 执行空间销毁
对应的代码块空间也会被销毁 对应的代码块里面的内容就会垃圾回收机制回收
闭包的概念:
1.在函数内部返回函数
2.内部函数要存储对应外部函数内的引用
3.那么这个数据就不会被回收 (持久化)
优点 1.持久化 可以作为缓存 2.不会造成数据的全局污染 (外部的内容不会直接访问函数的变量)
缺点 1.因为不会被回收 那么内存空间会一直占用 2.会一直保持引用