vue定时器的写法和setTimeout和setInterval的区别

0、前言介绍

setTimeout和setInterval都属于JS中的定时器,可以规定延迟时间再执行某个操作,不同的是setTimeout在规定时间后执行完某个操作就停止了,而setInterval则可以一直循环下去。

function fun(){
  alert('hello');
}
  setTimeout(fun,1000);//参数是函数名
  setTimeout('fun()',1000);//参数是字符串
  setInterval(fun,1000);
  setInterval('fun()',1000);

不再单独再定义一个函数,直接将函数调用放在一个函数里面,可以使用函数名作为调用调用句柄

function fun(name){
  alert('hello'+' '+name);
}
setTimeout (function(){
  fun('Tom');
},1000);//参数是函数名

1、setTimeout实现的形式一

第一种情况:用this.fun调用方法,不能传参数,参数可以用data

mounted() {
    this.Load();
  },
  methods: {
    Load() {
      // setTimeout("this.myfun", 1000); //1秒后開始运行 ×
      // setTimeout("this.myfun()", 1000); //1秒后開始运行 ×
      // setTimeout(this.myfun("参数"), 3000); //1秒后開始运行 直接运行函数 ×

      setTimeout(this.myfun, 3000); //1秒后開始运行 √
    },
    myfun(obj) {
      console.log("进来了", obj);
    },
}

2、setTimeout实现的形式二

mounted() {
    this.Load();
  },
  methods: {
    Load() {
      // setTimeout("myfun", 1000); //1秒后開始运行 ×
      // setTimeout("myfun()", 1000); //1秒后開始运行 ×
      // setTimeout(myfun("参数"), 1000); //1秒后開始运行 直接运行函数 ×

      setTimeout(myfun, 1000); //1秒后開始运行 √

      function myfun(obj) {
        console.log('进来了',obj);
      }
    },
}

3、setTimeout实现的形式三

也可以使用我的这种直接传function函数和时间参数

vue定时器的写法和setTimeout和setInterval的区别_第1张图片

你可能感兴趣的:(JS,+,Vue,javascript)