美文网首页
简单理解this指向

简单理解this指向

作者: Sun晨淏 | 来源:发表于2019-06-22 09:13 被阅读0次

    this的指向

    • 函数中的this是在运行时候决定的,而不是函数定义时
      全局环境中的this指window
      其他函数中的this指向调用它的对象
      使用call和apply改变函数中this的具体指向
      apply的参数需要放在一个数组里面
      bind改变this指向
      fn.bind(o)
    • 改变this指向的方法
      call和apply方法的使用
    函数体.call(obj)
    obj1={
       fn:function(){
     
       }
    }
    obj2 = {
       fn:function(){
     
       }
    }
    

    obj1.fn.call(obj2,,,,,,) call方法传参只需要使用多个逗号隔开
    apply方法需要将参数放在一个数组里
    以上两个方法改变函数的this指向并立即调用该函数

    bind在使用形式上合上面两个call和apply一样
    只不过不立即调用,经常在定时器,或其他回调函数等不立即调用的函数改变this指向时使用
    setTimeout(function(){}.bind(obj),1000)
    该匿名函数在1000毫秒后调用,使用bind改变this指向又不立即调用,符合该使用场景

    • apply()方法的应用
      参数需要传入一个数组
    var obj1 = {
                name:'zhangsan',
                returName:function(){
                return this.name;
                }
     }
     var obj2 = {
               name:'lisimao',
               returName:function(str){
               return this.name+str;
               }
      }
    console.log(obj2.returName.apply(obj1,['666']))
    
    • call()方法的应用()
      call方法和apply使用方法一致,只不过参数是直接传,不用数组盛放

    相关文章

      网友评论

          本文标题:简单理解this指向

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