小程序关于小程序闭包插件在遇到页面回退的时候this指向的bug

微信小程序,微信公开课,小程序关于小程序闭包插件在遇到页面回退的时候this指向的bug 微信公开课

如何看待微信公开课小程序热门讨论「小程序关于小程序闭包插件在遇到页面回退的时候this指向的bug」
摘要:小程序关于小程序闭包插件在遇到页面回退的时候this指向的bug
展开:1,一般做小程序的插件我都会在一个js写一个闭包,例如这样子:varpluginfunction(tempOption){this.optiontempOption;this.pageThistempOption.pageThis;//传入页面Page的this};plugin.prototype.initfunction(){this.pageThis.aaathis.aaa;//往页面注入方法};plugin.prototype.aaafunction(){};module.exports.Pluginfunction(tempOption){vartempPluginnewplugin(tempOption);tempPlugin.init();returntempPlugin;};2,一般插件都涉及到对页面交互的操作,所以需要操作到Page闭包里面的data数据,或者需要往页面注入一些方法方便模板的bindtap调用。所以一般插件我都会在页面调用的时候把页面的this当做参数传入到插件中供调用。例如:varpluginJsrequire(../plugin.js);Page({onLoad:function(){pluginpluginJs.Plugin({pageThis:this});//把页面的this传入到插件中}})3,一般情况下是没有任何问题的,但是当在页面A实例化插件时this指向的是页面A的this,然后A页面跳转到B页面实例化插件时this指向的是页面B的this。到这个地方依然没有任何问题,但如果这时候我点击顶部的回退按钮撤退到页面A,这时候插件的this指向的是还是页面B的this。所以就只能在onShow再做一次实例化做弥补,因为不少插件是要在数据读取之前先实例化的,所以没办法规避在onLoad里面做实例化。其它的编程语言也没有这种说写一个插件给别人调用还要写2次实例化这种道理的。了解更多

「小程序关于小程序闭包插件在遇到页面回退的时候this指向的bug」热门讨论订阅

微信小程序,微信公开课,小程序关于小程序闭包插件在遇到页面回退的时候this指向的bug
订阅小程序

方法1:微信扫描微信公开课小程序码即可订阅热门讨论「小程序关于小程序闭包插件在遇到页面回退的时候this指向的bug」

方法2:微信搜索微信公开课小程序名称进入,即可订阅热门讨论「小程序关于小程序闭包插件在遇到页面回退的时候this指向的bug」

方法3:微信网页访问即速商店,长按识别微信公开课小程序码即可订阅热门讨论「小程序关于小程序闭包插件在遇到页面回退的时候this指向的bug」

微信公开课小程序热门讨论「小程序关于小程序闭包插件在遇到页面回退的时候this指向的bug」由微信公开课原创摘录于微信小程序商店shop.jisuapp.cn,转载请注明出处。

微信公开课热门讨论「小程序关于小程序闭包插件在遇到页面回退的时候this指向的bug」由微信公开课开发者向微信用户提供,并对本服务内容、数据资料及其运营行为等真实性、合法性及有效性承担全部责任。