[英]How can I make my JavaScript library global?
我想創建一個JavaScript庫,並使它隨處可見,就像Moment.js
一樣。 例如,當我導入Moment.js
時,只要鍵入以下內容,就可以在任何地方使用它:
moment.someMomentFunction()
同樣,我想通過以下方法從任何地方調用我的函數:
mylib.function1()
mylib.function2()
etc..
查看Moment.js
源代碼,我看不到對window
對象的任何引用(如果希望對象是全局對象,則應使用該引用)
編輯:如果您特別想創建一個庫, 導出/導入應該可以幫助您:
import * as myModule from '/modules/my-module.js';
使用export關鍵字在庫中導出函數:
export function bing(Parameters here) {
alert("bong");
}
您只能從以前加載的文件和相同作用域的文件中調用函數。 如果從引用的帖子接受的答案不起作用,請嘗試使用jQuery
$.getScript(url, function() { bläh(); });
普通的,我使用類似這樣的東西來使用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';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.