项目案例:

  左右切换tab容器的动作,封装到一个对象中:

  var slidingComp = {

    startX : 0 ,

    moveX : 0 ,

    ......

    start : function(e) {

      ...

    },

    move : function(e) {

      ...

    },

    end : function(e) {

      ...

    }

  };

 

  在end函数中,设置3秒的动画:   

$(".mui-slider-group").css({
"transition":"all .3s 0s ease",
"-webkit-transition":"all .3s 0s ease",
"transform":"translate3d("+translate_x+"px,0px,0px)",
"-webkit-transform":"translate3d("+translate_x+"px,0px,0px)"
});
  需要在执行完后,将控制切换的开关打开:
setTimeout(function(){
this.canslide = true;
},350);


问题:
   setTimeout中this指向window,不是所在对象。
解决办法:
  1.闭包原理: 
var that = this;
setTimeout(function(){
that.canslide = true;
},350);
  2.bind()函数:
setTimeout(function(){
thit.canslide = true;
}.bind(this),350);
  3.箭头函数。



借鉴自:https://www.cnblogs.com/zsqos/p/6188835.html