对bind,call和apply你真正了解多少

31 阅读1分钟

前言

三者的作用都是改变函数运行时this的指向,那么什么时候需要改变this的指向?看个例子

let uname='张三'
let obj={
  uname:"",
  say:function(){
    console.log(this.name)
  }
}
obj.say()//赵四
setTimeout(obj.say, 0);//张三

可以清晰的看到两个结果,一个是赵四,一个是张三,这就说明第一个this的指向是obj,而我们的第二次 困了 明天继续写吧