小程序模板:专业的小程序模板与静态模板分享平台
小程序
教程
搜索
当前位置 : 首页> 小程序教程> 小程序中 that和this用法

小程序中 that和this用法

在微信小程序中,that 和 this 在使用上没有本质的区别,它们都是用来指代当前对象的关键字。然而,在某些特定的编程场景下,为了避免 this 指向变化导致的问题,可以通过 that 来保存 this 的引用。

// pages/index/index.js

Page({
  data: {
    message: 'Hello, Mini Program!',
  },

  onLoad: function () {
    // 使用 this 指代当前 Page 对象
    console.log(this.data.message); // 输出: Hello, Mini Program!

    // 将 this 保存在 that 中
    var that = this;

    // 在异步回调中使用 that,确保作用域不变
    setTimeout(function () {
      // 这里的 this 指向的是 setTimeout 的上下文,不再指向 Page 对象
      // 所以使用 that 来访问 Page 对象的属性
      console.log(that.data.message); // 输出: Hello, Mini Program!
    }, 1000);
  },

  onTap: function () {
    // 使用 this 指代当前 Page 对象
    console.log(this.data.message); // 输出: Hello, Mini Program!
  }
});


解释与建议

this 的使用:在大多数情况下,this 可以直接用来访问当前对象的属性和方法,比如在 onLoad 和自定义的函数中。

that 的用法:在涉及到异步操作或者回调函数中,为了确保能够访问到外层对象(比如 Page 对象)的属性和方法,可以将 this 赋值给 that,以便在回调函数中使用。

注意事项:微信小程序中的函数作用域和 this 的指向可能会因为异步操作而改变,使用 that 可以避免这种问题。

联系客服 意见反馈

签到成功!

已连续签到1天,签到3天将获得积分VIP1天

知道了