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

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

<script src="https://segmentfault.com/Public/js/qiniu.min.js"></script>

<script>

console.log(qiniu); //引入即可获取qiniu.min.js中的对象 qiniu

</script>

调试结果如图

很明显可以看到获取到的对象 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

回答

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

var qiniu = undefined;

!function(){

var exports = {};

var module = {};

// 将脚本粘贴在此

qiniu = module.qiniu;

}();

exports.qiniu = qiniu;

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

以上是 静态闭包函数的对象,如何在小程序中引入调用? 的全部内容, 来源链接: utcz.com/a/38263.html

回到顶部