我有一个包含
的文件global.js
var Global = (function () {
function Global() {
this.greeting = 'test';
}
Global.prototype.getList = function () {
return "Hello, " + this.greeting;
};
return Global;
})();
和另一个文件'main.js',包含
var global= new Global();
console.log(global.getList);
然后我在index.html中要求它们
...
<script>
require('./npmMain.js');
require('./main.js');
</script>
我得到Global is not defined
如何让班级可用于main.js?
有什么想法吗?
编辑:如果我在console.log('test');
内npmMain.js
我可以看到它运行,那么该文件就变得必需,只是该类不可用或者其他什么
答案 0 :(得分:1)
欢迎来到模块世界!
首先,在main.js
文件的内部,在顶部添加一行代码:
var Global = require('./npmMain.js').Global;
然后在npmMain.js
结束时添加如下所示的行:
exports.Global = Global;
然后从index.html
删除该行。应该这样做。
我猜你不熟悉CommonJS样式模块。模块不共享全局变量。在使用之前,需要一切(除了commonJS实现提供的一些属性之外)。此外,如果要在模块之间公开值,则需要使用exports
关键字。
有关CommonJS site的详细解释。