我有一个behavior的themeChanged()方法,需要传给wx.themeChanged事件,用作回调。
在Page页面里使用这个behavior,这样做是没问题的。调试时可以看到this.themeChanged()方法是bound了this的:
但,在使用Componet构造的页面里发现,this.themeChanged()没有bind this,导致事件回调时因this问题报错。
在代码中自己判断没有bind时自己bind一下也能解决问题。
所以,这不算是太大问题,只是想了解一下为何会有这个差异,以便更深入理解小程序框架,以后遇到小坑能灵活闪避-;)
确实是这样的。
Page 构造器有 bind this 的现象。这个在早期小程序基础库的实现就是这样的表现。但实际上这个并不是很合理,所以后期实现的 Component 构造器并没有这个表现。