this指向什么值,是在执行的时候确定的,与定义的位置无关,箭头函数除外
常用的调用场景
- 普通函数 指向当前调用它的对象,如果没有就是window
- 构造函数与class类 指向当前的实例化对象
- 对象方法的调用 调用该方法的对象
- 箭头函数 函数声明时的对象,与其他不同,其他都是调用时,箭头函数是声明时
- 定时器 指向window 但是如果内部函数为箭头函数,则指向函数声明时所在的对象
修改this指向
- call 多个参数,第一个参数就是要修改的this指向,其他参数是以散落的形式给调用该方法的函数传递参数
Game.call(this , '王者荣耀', '手游')
- apply 两个参数 第一个参数就是要修改的this指向,第二个参数是以数组的形式给调用该方法的函数传递参数
Game.apply(this, ['王者荣耀', '手游'])
- bind 一个参数,就是要修改的this指向 返回值是调用该方法的函数本身 函数需要再次调用才会执行,传递参数可以在函数调用时传递
Game.bind(this)('王者荣耀', '手游')
垃圾回收机制
浏览器的js具有自动垃圾回收机制 (GC)
,执行环境会管理代码在执行中所使用的内存,垃圾回收器会定期寻找不再使用的变量,释放其内存,垃圾回收器会按照时间间隔周期性的执行
变量的死亡