this
这篇总结主要讲解了this指向与如何修改
this指向
1.普通函数 指向window
2.对象的方法 该方法所属对象
3.构造函数 实例对象
4.事件绑定函数 绑定事件的对象
5.定时器函数 指向window
6.立即执行函数 指向window
函数上下文
局部变量+this指向默认情况下,函数内部的this是由调用决定的。无法修改
解决办法:函数上下文进行修改
call
语法:函数名.call(this指向谁,实参1,实参2......)
应用场景:万能数据类型检测
1.typeof 数据 : 有两种数据类型无法检测
null和数组无法检测,结果都是 ‘object’
2.解决方案:万能数据类型检测
Object.prototype.toString.call(数据)
数组原型的toString是转字符串的
Object原型的toString是检测数据类型的
apply
函数名.apply(this指向谁, 数组或伪数组 )
apply会自动帮你遍历数组,然后按照顺序逐一传参
函数名.apply(this指向谁, [实参1,实参2…..])
bind
语法:函数名.bind(this指向谁)
bind不会立即执行函数,而是返回一个修改this之后的新函数
场景:一般用于修改不需要立即执行的函数,例如:定时器,事件处理函数