假设我有一个像这样的UMD模块(保存在'js/mymodule.js'):
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(factory((global.mymodule = global.mymodule || {})));
}(this, function (exports) { 'use strict';
function myFunction() {
console.log('hello world');
}
}));
我如何在这样的 HTML 文件中使用这个模块? (没有 requirejs、commonjs、systemjs 等......)
<!doctype html>
<html>
<head>
<title>Using MyModule</title>
<script src="js/mymodule.js"></script>
</head>
<body>
<script>
/* HOW TO USE myFunction from mymodule.js ??? */
</script>
</body>
</html>
非常感谢您的帮助。
好的,所以你正在一个没有 RequireJS、CommonJS、SystemJS 等的环境中运行。
关键行是factory((global.mymodule = global.mymodule || {}))
这做了一些事情:
-
If global.mymodule
true,那么它相当于
global.mymodule = global.mymodule // A noop.
factory(global.mymodule)
-
否则它相当于:
global.mymodule = {}
factory(global.mymodule)
工厂内部:您的工厂应该通过分配来导出您想要从模块中导出的内容exports
。所以你会导出myFunction
通过做exports.myFunction = myFunction
.
工厂外:在室外,导出的值将打开mymodule
被出口到全球空间。当你想使用时myFunction
,例如,你做mymodule.myFunction(...)
.
万一不清楚。代码中的工厂是以以下开头的函数function (exports) {
,你正确放置的地方myFunction
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)