静态闭包函数的对象,如何在小程序中引入调用?

发布于 2022-09-12 04:06:44 字数 1072 浏览 18 评论 0

http://www.makusi.cn/Public/j...
这个qiniu.min.js本身可用于普通html页面引用。

<script src="/Public/js/qiniu.min.js"></script>
<script>
   console.log(qiniu);  //引入即可获取qiniu.min.js中的对象 qiniu
</script>

调试结果如图
image
很明显可以看到获取到的对象 qiniu,它有很多方法可以用,例如qiniu.upload()。非常方便。支持分片上传,还支持显示进度。


但在小程序里面无法使用。小程序里面,如果要引入外部js,需要类似下面这样写法

// common.js
function sayHello(name) {
  console.log(`Hello ${name} !`)
}
function sayGoodbye(name) {
  console.log(`Goodbye ${name} !`)
}
module.exports.sayHello = sayHello
exports.sayGoodbye = sayGoodbye
​//在需要使用的文件中,使用 require 将公共代码引入
var common = require('common.js')
Page({
  helloMINA: function() {
    common.sayHello('MINA')
  },
  goodbyeMINA: function() {
    common.sayGoodbye('MINA')
  }
})

我解压发现qiniu.min.js本身就是个闭包,似乎还是个静态对象。
按小程序的写法,只是require,qiniu闭包本身没有执行。

问题:如何在小程序里面获取到qiniu.min.js中的对象 qiniu

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风情万种。 2022-09-19 04:06:44

小程序应该是用的 CommonJS 标准,这个脚本是 AMD 标准,所以在这个脚本就绪前准备一个假的 AMD 环境来获取 qiniu 的值,然后按照 CommonJS 的方式导出,应该可以解决问题:

var qiniu = undefined;

!function(){
    var exports = {};
    var module = {};

    // 将脚本粘贴在此

    //qiniu = module.qiniu;
    qiniu = module.exports;
}();
module.exports.qiniu = qiniu;
exports.qiniu = qiniu;

脚本里我没看到七牛的版权声明,如果你的项目商业化并且要做大的话,需要找找人家的版权声明再确定是否使用,竞品尤其需要注意。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文