- this就是一个指针,指向调用对象函数的对象
- 常见this指向
- 普通调用 a() :this指向window
- 构造调用 new a() :this指向当前构造函数创建的实例对象
- 隐式调用 obj.a() :this指向前面的实例对象(obj)
- 显式调用 a.call(obj) :this指向括号内第一个实参
- 箭头函数 ()=>{} :this指向外层作用域的this
- 事件回调函数 : this指向事件源
- 定时器的回调 :this指向window
- vue组件中的methods函数 :this指向vue组件实例
- 如何改变this指向
- 箭头函数
- 函数内部使用变量接收this
- call,apply,bind
- new实例话一个对象
- 面试题
var a = 1;
obj = {
a : 2,
fn
};
function fn(){
var a = 3;
console.log(this.a);
};
fn(); //普通调用,this指向window,输出a的值为1
obj.fn(); //隐式调用,this指向前面的对象(obj),输出a的值为2