this 专题

84 阅读1分钟
  • 默认绑定规则 指向 window
  • 隐式调用规则 谁调用指向谁 当函数作为回调函数时,函数内 this 由 api 决定例如 forEach sort
  • 显式绑定 call, apply, bind 绑定非对象则会转化为包装类 没有包装类则会默认
  • new 绑定

tips: 箭头函数内没 this 所以拿的是父亲 AO 的 this(四种绑定方式对箭头函数均不好使) 而且箭头函数不能作为构造函数

var name = "window";
var obj1 = {
  name: 1,
  fn4: function () {
    return () => {
      console.log(this.name);
    };
  },
};
var obj2 = {
  name: 2,
};

obj1.fn4()(); //1
obj1.fn4().call(obj2); //1
obj1.fn4.call(obj2)(); //2