收藏
回答

Behavior的methods在Page和Component里的表现有差异?

我有一个behavior的themeChanged()方法,需要传给wx.themeChanged事件,用作回调。

在Page页面里使用这个behavior,这样做是没问题的。调试时可以看到this.themeChanged()方法是bound了this的:

但,在使用Componet构造的页面里发现,this.themeChanged()没有bind this,导致事件回调时因this问题报错。

在代码中自己判断没有bind时自己bind一下也能解决问题。

所以,这不算是太大问题,只是想了解一下为何会有这个差异,以便更深入理解小程序框架,以后遇到小坑能灵活闪避-;)

最后一次编辑于  2021-05-24
回答关注问题邀请回答
收藏

1 个回答

  • LastLeaf
    LastLeaf
    2021-05-24

    确实是这样的。

    Page 构造器有 bind this 的现象。这个在早期小程序基础库的实现就是这样的表现。但实际上这个并不是很合理,所以后期实现的 Component 构造器并没有这个表现。

    2021-05-24
    有用 1
    回复 1
    • Tïedào 🧸
      Tïedào 🧸
      2021-05-25
      好的
      2021-05-25
      回复
登录 后发表内容