2016-08-26 14 views
6

Piszę niektóre pliki javascript, które nie będą używane z dokumentami HTML. Na przykład, pisząc kalkulator w js, gdzie będę miał różne pliki .js, powiedzmy, że dodawanie, odejmowanie, mnożenie, dzielenie itp.Używanie pliku javascript w innym pliku JS

Chciałbym, aby każda operacja matematyczna była w samodzielnym pliku .js plik następnie mieć inny plik .js, który będzie # zawierać inne mniejsze pliki i może wywoływać z nich funkcje?

Czy to możliwe?

Przykład matematyczny to prosty sposób na wyrażenie tego, co mam na myśli. Rzeczywisty program jest nieco bardziej skomplikowany, ponieważ głównym celem podziału kodu jest to, że łatwiej jest mi uzasadnić małe wyspecjalizowane fragmenty kodu.

Nie mam żadnego dokumentu ani domeny do pracy, wystarczy zwykły plik .js z wbudowanymi algorytmami.

+1

Można użyć WebPack z 'require ('otherfile.js');' – jcubic

+0

to naprawdę wydaje się js nie jest odpowiednia dla mojego bieżący projekt. Musiałem rzucić javascript i przejść do innego języka programowania. Chyba, że ​​w międzyczasie od czasu tego oryginalnego pytania js trochę się zmodernizuje. Kto chce monolitycznego pliku, szczególnie z wykonaniem kodu asynchronicznego js, ​​kolizjami nazw, itp ... na pewno mógłbym zawijać funkcje i tworzyć je, ale wow ..... – user1610950

+0

tak, użycie wymaga –

Odpowiedz

2

Używanie javascript:

var script = document.createElement('script'); 
script.src = '/js/script'; 
document.head.appendChild(script); 

jQuery:

//you need to change your path 
$.getScript('/js/script.js', function() 
{ 
    // script is imported 

}); 
+3

[Ja nazywam plagiatem!] (https://stackoverflow.com/a/4634669/2288578) – Clonkex

1

Oto synchroniczny wersja:

function myRequire(url) { 
    var ajax = new XMLHttpRequest(); 
    ajax.open('GET', url, false); // <-- the 'false' makes it synchronous 
    ajax.onreadystatechange = function() { 
     var script = ajax.response || ajax.responseText; 
     if (ajax.readyState === 4) { 
      switch(ajax.status) { 
       case 200: 
        eval.apply(window, [script]); 
        console.log("script loaded: ", url); 
        break; 
       default: 
        console.log("ERROR: script not loaded: ", url); 
      } 
     } 
    }; 
    ajax.send(null); 
} 

pamiętać, że aby dostać tę pracę przekrój domeny, serwer będzie musiał ustawić nagłówek pozwalają początkowego w swojej odpowiedzi.

Powiązane problemy