this

65 阅读1分钟

1.正常函数中的this

简单来说就是谁调用函数这个this指向谁

  • 在new的时候this指向new新创建的实例对象,当要new的函数中有return的时候

1.return{} this指向返回的{}对象

2.return 简单数据类型的时候this指向new构造的实例对象

  • apply,bind,call会改变this的指向,this指向传入的第一个参数
  • 不在函数里时this在浏览器中指向window,node中指向null
  • 通过对象调用如obj.fun()会指向前面的对象

实际上函数的this指向是在创建函数的执行上下文的时候确定的

2.箭头函数this

箭头函数实际上没有this,箭头函数的this会由于闭包去向外层找,而闭包基于词法作用域,所以箭头函数的this在编译时就确定了,也因此箭头函数不能作为构造函数