美文网首页
this 指向汇总及 call 、apply、 bind 、箭头

this 指向汇总及 call 、apply、 bind 、箭头

作者: tenro | 来源:发表于2022-07-25 10:01 被阅读0次

    this的指向汇总:

    1、 事件处理函数中指向事件源
    2、 构造函数中this指向new出来的是实例对象
    3、 函数是类的方法时this是指向调用方法时的对象
    4、 非以上情况是指向全局变量window 
    

    call 、apply 、bind 使用分析

    fn.call(obj, arg1, arg2, arg3, ...) // obj就是this
    fn.apply(obj, [arg1, arg2, arg3, ...])  // obj就是this
    fn.bind(obj, arg1, arg2, arg3, ...)()   // obj是this,但是bind返回是一个函数
    

    箭头函数this是指向父级作用域

    var name = "全局下的Name";
    var obj = {
      name: 'obj的Name';
      objFn: function(){
        console.log(this.name);     // 'obj的Name'
      },
      windowFn: () => {
        console.log(this.name);     // "全局下的Name"
      },
      mixFn: function(){
        console.log(this.name);     // 'obj的Name'
        var printName = () => {
          console.log(this.name)    // 'obj的Name'
        }
        printName();
      }
    }
    obj.objFn();
    obj.windowFn();
    obj.mixFn();
    

    相关文章

      网友评论

          本文标题:this 指向汇总及 call 、apply、 bind 、箭头

          本文链接:https://www.haomeiwen.com/subject/gnaeirtx.html