我想创建一个JavaScript库并使它随处可用,就像Moment.js
一样。
例如,当我导入Moment.js
时,只要键入以下内容,就可以在任何地方使用它:
moment.someMomentFunction()
类似地,我想从任何地方通过执行以下操作来调用我的函数:
mylib.function1()
mylib.function2()
etc..
在查看Moment.js
源代码时,我看不到对window
对象的引用(如果希望对象是全局对象,则应使用该引用)
答案 0 :(得分:1)
编辑:如果您特别想创建一个库,export / import应该可以帮助您:
import * as myModule from '/modules/my-module.js';
使用export关键字在库中导出函数:
export function bing(Parameters here) {
alert("bong");
}
在Calling a javascript function in another js file中回答
您只能从以前加载的文件和相同作用域的文件中调用函数。如果引用的帖子接受的答案不起作用,请尝试使用jQuery
$.getScript(url, function() {
bläh();
});
答案 1 :(得分:0)
普通我使用类似这样的东西来使用ES5定义一个单独的模块。
LibName= window.LibName || {};
LibName = function () {
var yourVar1;
var yourVar2;
publicFunc1 = function() {
};
privateFunc2 = function() {
};
return {
"publicFuncName" : publicFunc1
}
}();
在ES6的帮助下,您可以创建带类且不带窗口变量的对象。
class MyLib {
constructor() {
this.foo = 1;
this.bar = 2;
}
myPublicMethod1() {
return this.foo;
}
myPublicMethod2(foo) {
return foo + this.bar;
}
}
const instance = new MyLib();
export { instance as MyLib };
在代码中,您将像这样使用它
import { MyLib } from './MyLib';