小程序如何挂载一个类似 wx 这样的全局对象?
背景
想做一个类似 pollyfill 的通用方法,以兼容微信、支付宝、百度小程序三者的 API 调用,因为三者之间部分 API 是有细微区别的。
不想每次都改一遍,然后有些转换工具转化效果还是不够理想,自己用 Gulp 写的脚步也不能完全兼容。
如果写了 pollfill 的话,也方便统一管理、维护。
想法 & 不足
将其挂载到 global 对象或者导出 ESM 模块,但是这种方式仍需要在使用之前,先引入。
求助
有没有一个方法可以直接调?像 wx 这个对象,我们可以在任何地方随时调用。例如 wx.chooseImage。
比如我将 mini 作为自定义的全局对象, 然后也想在任何地方通过 mini.xxx 来调用,如 mini.chooseImage
其他思路
看过别人一方法,可真机上不行,因为在真机上 this 为 undefined,如下:
Object.defineProperty(Object.prototype, '__root', {
get() {
if (this && this.App === App) {
return this
}
},
configurable: false,
enumerable: false
})
// 使用
// __root.xxx