收藏
回答

this问题有点不理解的问题

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 需求 setData 工具 6.5.3 2.0.0


大佬们,小菜刚开始学小程序.跟着一本书学,它这里讲this重新赋值给that,就是合适的,我直接用this,就是看不懂的报错,为什么这里要转换一下?


最后一次编辑于  2018-12-26
回答关注问题邀请回答
收藏

7 个回答

  • 溜达洋
    溜达洋
    2018-12-28

    先补js去,跟小程序没关系

    2018-12-28
    赞同
    回复
  • 晓峰
    晓峰
    2018-12-27

    费劲儿的this

    2018-12-27
    赞同
    回复
  • 🇨🇳 闯哥侃世界
    🇨🇳 闯哥侃世界
    2018-12-27

    this指向问题,setTimeout回调可以用箭头函数

    2018-12-27
    赞同
    回复
  • 再见,电脑崽
    再见,电脑崽
    2018-12-26

    this转that主要用于回调函数,你这里这么使用是不会有问题的。

    2018-12-26
    赞同
    回复 3
    • 麦洛
      麦洛
      2018-12-26

      目前使用没有问题,我是搞不懂,为什么要转一下,是因为我的js引入了自定义js吗?

      2018-12-26
      回复
    • 再见,电脑崽
      再见,电脑崽
      2018-12-26回复麦洛

      回调里面的this不是你当前page的this了,指向不同

      2018-12-26
      回复
    • 麦洛
      麦洛
      2018-12-26回复再见,电脑崽

      嗯嗯,明白了,谢谢了

      2018-12-26
      回复
  • 麦洛
    麦洛
    2018-12-26


    我现在将那段代码注释了,然后将用that地方全部换为this,就会有下面的报错


    2018-12-26
    赞同
    回复
  • 卢霄霄
    卢霄霄
    2018-12-26

    你这里用this不会报错吧,为啥会报错呢,截图下 报啥错呢

    2018-12-26
    赞同
    回复 10
    • 麦洛
      麦洛
      2018-12-26

      我重新上传了图片,麻烦你看看

      2018-12-26
      回复
    • 卢霄霄
      卢霄霄
      2018-12-26回复麦洛

      setTimeout(()=>{

          xxxxxx

      })

      2018-12-26
      回复
    • 麦洛
      麦洛
      2018-12-26回复卢霄霄

      我好像明白了,小程序中this代表当前对象,随着代码的执行,this会变,回调函数中的this已经变了,所以需要把this保存到一个临时变量that,为了后续操作对吧

      2018-12-26
      回复
    • 卢霄霄
      卢霄霄
      2018-12-26回复麦洛

      你这么说也没啥不对。。不过你可以去百度下 this apply bind call 顺便一下学习完

      2018-12-26
      回复
    • 麦洛
      麦洛
      2018-12-26回复卢霄霄

      好的,谢谢

      2018-12-26
      回复
    查看更多(5)
  • 若谷
    若谷
    2018-12-26

    你这个this,打印出来应该是函数本身,而你赋值是赋给data的,而不是函数本身

    2018-12-26
    赞同
    回复 3
    • 麦洛
      麦洛
      2018-12-26

      没有太明白,大佬

      2018-12-26
      回复
    • 若谷
      若谷
      2018-12-26回复麦洛

      你写的这个事件,你conso.log(this);打印出来的应该是 deleteImage:function(){};你赋值,是为了赋给page里面的 data{},如果你直接this的话,小程序不知道赋值给谁。ok?

      2018-12-26
      回复
    • 一步一脚印
      一步一脚印
      2018-12-27回复若谷

      你说的不对,他这个错是因为在定时器里使用this了,小程序page内定义函数,函数内使用this是ok的

      2018-12-27
      回复