深入JavaScript Day04 - 闭包、this的四种绑
2022-01-12 本文已影响0人
望穿秋水小作坊
一、闭包补充
1、闭包是如何导致内存泄漏的?如何解决?
- window【持有】了闭包函数,闭包函数【持有】了父级AO
- 后续不再使用闭包函数了,但是闭包函数持有的父级AO始终不能释放
-【解决方案】将window持有的闭包函数,指向null
2、借助Chrome的性能分析,来验证闭包的持有对象不释放问题?(思路很重要)
image.png3、如果闭包持有的父级AO中,仅仅使用name,而未使用age,那么age也会被持有吗?
- age不会被闭包持有
- 从浏览器的bugger模式可以看到
二、this的四种绑定情况
1、this指向其实是有点难知识点,那么为什么JavaScript开发中需要this呢?
- 有this的代码,将获得更好的灵活性、扩展性
- 比如下面代码,没有使用this,那么逻辑代码将和变量名绑定,耦合度就会很高,也不易扩展
2、浏览器中,在全局作用域下,this指向谁?
- 指向window
3、从下面代码,对于this有什么感悟?
image.png- this的绑定和定义的位置(编写的位置)没有关系
- this是运行时被绑定的