uniApp重写Page和App,Component,指针指向错误

先上代码:

var biData = {
    wxApp: App,
    wxPage: Component,
    log(funcName, self, argvs) {
        console.log("开始")
        console.log("function name", funcName)
        console.log("参数:", argvs)
        console.log("页面:", (self.route ? self.route : "app中的方法"))
        console.log("结束")
    },
    hook(funcName, callback) {
        let c = callback
        console.log("hook funcName",funcName)
        console.log("hook callback",callback)
        return function() {
            biData.log(funcName, this, arguments)
            c.apply(this, arguments)
        }
    },
    instrument(value, type) {
        // console.log("type------------", type)
        // console.log("value------------", value.data)
        for (let key in value.data) {
            // console.log("value[key]1", value.data[key])
            if (typeof value.data[key] === 'function') {
                console.log("value[key]2", value.data[key])
                value.data[key] = this.hook(key, value.data[key])
            }
        }
        return value
    },
    rewriteApp(e) {
        console.log("rewriteApp", e)
        return biData.wxApp(biData.instrument(e, "App"))
    },
    rewritePage(e) {
    console.log("rewritePage", e)
        return biData.wxPage(biData.instrument(e, "Component"))
    },
    appHandlerFuns: ['onShow', 'onLanch', 'onError'],
    pageHandlerFuns: ['onShow', 'onLanch', 'onError']
}

App = biData.rewriteApp
Component = biData.rewritePage

在以上的代码中,根据多次测试发现,无法在最后将覆写好的方法重新指向原本的方法。
原生小程序代码没有问题,用uniApp编译的小程序就不行,请问如何处理能解决这个指针问题呢?

阅读 1.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题