簡體   English   中英

如何使我的JavaScript庫具有全局性?

[英]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");
}

在另一個js文件調用javascript函數所回答

您只能從以前加載的文件和相同作用域的文件中調用函數。 如果從引用的帖子接受的答案不起作用,請嘗試使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM