收藏
回答

es6 作用域以及this指针

图一使用es6语法报图2错误,然后传入this,发现显示正常,没有查出问题,只能拜托你们了



图1



图2



图3

最后一次编辑于  2018-09-05  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏关注问题回答

8 个回答

  • 🚗🚕🚙🚌🚎🚒🚐🚚
    🚗🚕🚙🚌🚎🚒🚐🚚
    2018-09-05
    你这样写的话
    this指向outOfPage
    const outOfPage = this
    Page({
    //...
    })

    所以,page里别这样绑定this,直接fnName()

    {}就行

    2018-09-05
    赞同
    回复 3
    • *
      *
      2018-09-06

      这种绑定只是在app.js中会报错吗?还是page也不行?

      2018-09-06
      赞同
      回复
    • 🚗🚕🚙🚌🚎🚒🚐🚚
      🚗🚕🚙🚌🚎🚒🚐🚚
      2018-09-06回复*

      page不行

      2018-09-06
      赞同
      回复
    • *
      *
      2018-09-06回复🚗🚕🚙🚌🚎🚒🚐🚚

      好的,非常感谢

      2018-09-06
      赞同
      回复
  • 还是赵小宇
    还是赵小宇
    2018-09-05

    loginAndOpenid: function() {

        const this_ = this

        ...

    }

    2018-09-05
    赞同
    回复 3
    • *
      *
      2018-09-06

      es6的话不是有作用域了吗?怎么还得使用const

      或者我在页面第一次加载的时候就把this设置成const的,这种的可以吗?

      2018-09-06
      赞同
      回复
    • 还是赵小宇
      还是赵小宇
      2018-09-06回复*

      不是const的问题,只是建议用const。


      你的问题是,代码中的loginAndOpenid这个方法用了箭头函数来声明,这时候的this就是undefined,相当于下面这种写法:

      const this_ = this

      Page({

      ...

      })

      你可以试一下这么写之后,看一下是不是也是undefined


      解决方法:把箭头函数换掉成function()就可以了

      Page({

      ...

          ,loginAndOpenid: function() {

              const ctx = this

              ...

          }

      })



      2018-09-06
      赞同
      回复
    • *
      *
      2018-09-06回复还是赵小宇

      原来如此,谢谢

      2018-09-06
      赞同
      回复